NC50075. 说能过那是假的
描述
#include<stdio.h> #include<string.h> int main() { char ch[100007]; int len,ans=0; scanf("%s",ch); len=strlen(ch); for(int i=0;i<len;i++) for(int j=i+1;j<len;j++) for(int k=j+1;k<len;k++) if(ch[i]=='O'&&ch[j]=='R'&&ch[k]=='Z') ans++; printf("%d\n",ans); }
输入描述
输入一行一个仅包含'O','R'和'Z'三种字符的字符串s。( 0 < |s| <= 100000 )
输出描述
一行一个整数表示代码中ans的值。
示例1
输入:
ORZORZ
输出:
4
C++14(g++5.4) 解法, 执行用时: 5ms, 内存消耗: 600K, 提交时间: 2019-08-22 17:08:30
#include<bits/stdc++.h> using namespace std; int main() { char s[1000010]; scanf("%s",s); long long t=0,t1=0,t2=0; for(long long i=0;i<strlen(s);i++) { if(s[i]=='O')t++; else if(s[i]=='R')t1+=t; else t2+=t1; } cout<<t2; return 0; }
C++ 解法, 执行用时: 5ms, 内存消耗: 648K, 提交时间: 2021-08-23 21:22:21
#include<iostream> using namespace std; typedef long long ll; int main() { ll i,o=0,Or=0,orz=0; string q; cin>>q; for(i=0;i<q.size();i++) { if(q[i]=='O') o++; if(q[i]=='R') Or+=o; if(q[i]=='Z') orz+=Or; } cout<<orz<<endl; }
pypy3(pypy3.6.1) 解法, 执行用时: 66ms, 内存消耗: 19556K, 提交时间: 2020-03-18 12:54:54
s = input() o=Or=orz=0 for i in s: if i=='O': o+=1 if i=='R': Or+=o if i=='Z': orz+=Or print(orz)
Python3(3.5.2) 解法, 执行用时: 56ms, 内存消耗: 3740K, 提交时间: 2019-08-18 10:51:12
s=input() o=0 r=0 z=0 for i in s: if i=='O': o+=1 if i=='R': r+=o if i=='Z': z+=r print(z)