Submission #3245959
Source Code Expand
#include<iostream> #include<cstdio> #include<cstring> #include<vector> #include<algorithm> #include<queue> #include<cmath> #include<cstdlib> #include<set> #define LL long long #define LD long double using namespace std; const int NN=250000 +117; const int MM= +117; int read(){ int fl=1,x;char c; for(c=getchar();(c<'0'||c>'9')&&c!='-';c=getchar()); if(c=='-'){fl=-1;c=getchar();} for(x=0;c>='0'&&c<='9';c=getchar()) x=(x<<3)+(x<<1)+c-'0'; return x*fl; } void open(){ freopen("99f.in","r",stdin); //freopen(".out","w",stdout); } void close(){ fclose(stdin); fclose(stdout); } int m,n; multiset<pair<LL,LL>> a; char s[NN]={}; LL mod[2]={998244353,2281701377}; LL ksm(LL a,LL b,LL mod){ LL ret=1; while(b){ if(b&1){ ret*=a; ret%=mod; } a*=a; a%=mod; b>>=1; } return ret; } int main(){ //open(); n=read(); scanf("%s",s); LL res[2]={0,0}; LL rev[2]; rev[0]=ksm(mod[0],mod[1]-2,mod[1]); rev[1]=ksm(mod[1],mod[0]-2,mod[0]); LL p[2]={1,1}; for(int i=0;i<n;++i){ if(s[i]=='+'){ for(int i=0;i<2;++i){ res[i]+=p[i]; res[i]%=mod[i]; } } if(s[i]=='-'){ for(int i=0;i<2;++i){ res[i]+=mod[i]-p[i]; res[i]%=mod[i]; } } if(s[i]=='<'){ for(int i=0;i<2;++i){ p[i]*=rev[i^1]; p[i]%=mod[i]; } } if(s[i]=='>'){ for(int i=0;i<2;++i){ p[i]*=mod[i^1]; p[i]%=mod[i]; } } } p[0]=1; p[1]=1; LL tp[2]={0,0}; LL ans=0; for(int i=0;i<n;++i){ a.insert(make_pair((tp[0]+p[0]*res[0])%mod[0],(tp[1]+p[1]*res[1])%mod[1])); if(s[i]=='+'){ for(int i=0;i<2;++i){ tp[i]+=p[i]; tp[i]%=mod[i]; } } if(s[i]=='-'){ for(int i=0;i<2;++i){ tp[i]+=mod[i]-p[i]; tp[i]%=mod[i]; } } if(s[i]=='<'){ for(int i=0;i<2;++i){ p[i]*=rev[i^1]; p[i]%=mod[i]; } } if(s[i]=='>'){ for(int i=0;i<2;++i){ p[i]*=mod[i^1]; p[i]%=mod[i]; } } ans+=a.count(make_pair(tp[0],tp[1])); } printf("%lld\n",ans); close(); return 0; }
Submission Info
Submission Time | |
---|---|
Task | F - Eating Symbols Hard |
User | Hercier |
Language | C++14 (GCC 5.4.1) |
Score | 0 |
Code Size | 2076 Byte |
Status | TLE |
Exec Time | 2104 ms |
Memory | 16128 KB |
Compile Error
./Main.cpp: In function ‘void open()’: ./Main.cpp:24:29: warning: ignoring return value of ‘FILE* freopen(const char*, const char*, FILE*)’, declared with attribute warn_unused_result [-Wunused-result] freopen("99f.in","r",stdin); ^ ./Main.cpp: In function ‘int main()’: ./Main.cpp:53:15: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result] scanf("%s",s); ^
Judge Result
Set Name | Sample | All | ||||||
---|---|---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 0 / 1200 | ||||||
Status |
|
|
Set Name | Test Cases |
---|---|
Sample | sample1.txt, sample2.txt, sample3.txt |
All | sample1.txt, sample2.txt, sample3.txt, 1.txt, 10.txt, 11.txt, 12.txt, 13.txt, 14.txt, 15.txt, 16.txt, 17.txt, 18.txt, 19.txt, 2.txt, 20.txt, 21.txt, 22.txt, 23.txt, 24.txt, 25.txt, 26.txt, 27.txt, 28.txt, 29.txt, 3.txt, 30.txt, 31.txt, 32.txt, 33.txt, 34.txt, 35.txt, 36.txt, 37.txt, 38.txt, 39.txt, 4.txt, 40.txt, 41.txt, 42.txt, 43.txt, 44.txt, 45.txt, 46.txt, 47.txt, 48.txt, 49.txt, 5.txt, 50.txt, 51.txt, 52.txt, 53.txt, 54.txt, 55.txt, 56.txt, 57.txt, 58.txt, 59.txt, 6.txt, 60.txt, 61.txt, 62.txt, 63.txt, 64.txt, 65.txt, 66.txt, 67.txt, 68.txt, 69.txt, 7.txt, 70.txt, 71.txt, 72.txt, 73.txt, 74.txt, 75.txt, 76.txt, 77.txt, 78.txt, 8.txt, 9.txt, a.txt, b.txt, sample1.txt, sample2.txt, sample3.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
1.txt | AC | 1 ms | 256 KB |
10.txt | AC | 134 ms | 16128 KB |
11.txt | AC | 116 ms | 16128 KB |
12.txt | AC | 1997 ms | 16128 KB |
13.txt | AC | 994 ms | 16128 KB |
14.txt | TLE | 2103 ms | 4608 KB |
15.txt | TLE | 2103 ms | 4736 KB |
16.txt | AC | 144 ms | 16128 KB |
17.txt | AC | 158 ms | 16128 KB |
18.txt | AC | 121 ms | 16128 KB |
19.txt | AC | 136 ms | 16128 KB |
2.txt | AC | 1 ms | 256 KB |
20.txt | AC | 1959 ms | 16128 KB |
21.txt | TLE | 2103 ms | 4608 KB |
22.txt | AC | 143 ms | 16128 KB |
23.txt | AC | 422 ms | 16128 KB |
24.txt | AC | 120 ms | 16128 KB |
25.txt | AC | 129 ms | 16128 KB |
26.txt | AC | 1719 ms | 16128 KB |
27.txt | TLE | 2103 ms | 4608 KB |
28.txt | AC | 141 ms | 16128 KB |
29.txt | AC | 130 ms | 16128 KB |
3.txt | AC | 5 ms | 896 KB |
30.txt | AC | 119 ms | 16128 KB |
31.txt | AC | 146 ms | 16128 KB |
32.txt | AC | 1611 ms | 16128 KB |
33.txt | TLE | 2103 ms | 4608 KB |
34.txt | AC | 143 ms | 16128 KB |
35.txt | AC | 129 ms | 16128 KB |
36.txt | AC | 121 ms | 16128 KB |
37.txt | AC | 132 ms | 16128 KB |
38.txt | AC | 1744 ms | 16128 KB |
39.txt | TLE | 2103 ms | 4480 KB |
4.txt | AC | 143 ms | 16128 KB |
40.txt | AC | 141 ms | 16128 KB |
41.txt | AC | 245 ms | 16128 KB |
42.txt | AC | 120 ms | 16128 KB |
43.txt | AC | 131 ms | 16128 KB |
44.txt | TLE | 2104 ms | 15744 KB |
45.txt | TLE | 2103 ms | 4480 KB |
46.txt | AC | 653 ms | 16128 KB |
47.txt | TLE | 2103 ms | 1664 KB |
48.txt | TLE | 2103 ms | 2048 KB |
49.txt | TLE | 2103 ms | 2304 KB |
5.txt | AC | 142 ms | 16128 KB |
50.txt | AC | 158 ms | 16128 KB |
51.txt | TLE | 2103 ms | 1664 KB |
52.txt | AC | 142 ms | 16128 KB |
53.txt | AC | 138 ms | 16128 KB |
54.txt | AC | 120 ms | 16128 KB |
55.txt | AC | 138 ms | 16128 KB |
56.txt | AC | 1761 ms | 16128 KB |
57.txt | TLE | 2103 ms | 4480 KB |
58.txt | AC | 139 ms | 16128 KB |
59.txt | AC | 143 ms | 16128 KB |
6.txt | AC | 401 ms | 16128 KB |
60.txt | AC | 136 ms | 16128 KB |
61.txt | AC | 136 ms | 16128 KB |
62.txt | AC | 179 ms | 16128 KB |
63.txt | AC | 177 ms | 16128 KB |
64.txt | AC | 113 ms | 16128 KB |
65.txt | AC | 112 ms | 16128 KB |
66.txt | AC | 113 ms | 16128 KB |
67.txt | AC | 128 ms | 12544 KB |
68.txt | AC | 79 ms | 8576 KB |
69.txt | AC | 90 ms | 9472 KB |
7.txt | AC | 131 ms | 16128 KB |
70.txt | AC | 102 ms | 10368 KB |
71.txt | AC | 109 ms | 11136 KB |
72.txt | AC | 118 ms | 11776 KB |
73.txt | AC | 139 ms | 16128 KB |
74.txt | AC | 141 ms | 16128 KB |
75.txt | AC | 140 ms | 16128 KB |
76.txt | AC | 146 ms | 16128 KB |
77.txt | AC | 141 ms | 16128 KB |
78.txt | AC | 154 ms | 16128 KB |
8.txt | AC | 120 ms | 16128 KB |
9.txt | AC | 120 ms | 16128 KB |
a.txt | AC | 1 ms | 256 KB |
b.txt | AC | 1 ms | 256 KB |
sample1.txt | AC | 1 ms | 256 KB |
sample2.txt | AC | 1 ms | 256 KB |
sample3.txt | AC | 1 ms | 256 KB |