Submission #334121

#TimeUsernameProblemLanguageResultExecution timeMemory
334121beksultan04Money (IZhO17_money)C++14
9 / 100
1 ms620 KiB
#include <bits/stdc++.h> using namespace std; #define int long long #define pii pair<int,int> #define OK puts("OK"); #define fr first #define sc second #define ret return #define scan1(a) scanf("%lld",&a); #define scan2(a,b) scanf("%lld %lld",&a, &b); #define scan3(a,b,c) scanf("%lld %lld %lld",&a,&b,&c); #define all(s) s.begin(),s.end() #define pb push_back #define endi puts(""); const int N = 1e6+12,INF=1e9+7; int q[N],der[4*N]; void update(int v,int l,int r,int x){ if (l==r) der[v]+=1; else { int m = l+r>>1; if (x <= m) update((v<<1),l,m,x); else update((v<<1)+1,m+1,r,x); der[v]=der[v*2]+der[v*2+1]; } } int get_ans(int v,int l,int r,int ql,int qr){ if (r < ql || qr < l )ret 0; if (ql <= l && r <= qr)ret der[v]; int m = l+r>>1; ret get_ans(v<<1,l,m,ql,qr)+get_ans((v<<1)+1,m+1,r,ql,qr); } main(){ int n,j,i,ans=0,sum=1,l; scan1(n) for (i=1;i<=n;++i)scan1(q[i]) update(1,1,1000000,q[1]); l=1; for (i=2;i<=n;++i){ update(1,1,1000000,q[i]); if (q[i] < q[i-1]){ ans++; l=i; } else { int x = get_ans(1,1,1000000,q[l],q[i])-get_ans(1,1,1000000,q[l],q[l])-get_ans(1,1,1000000,q[i],q[i]); if (q[i] == q[l]){ x += get_ans(1,1,1000000,q[i],q[i]); } if (x > i-l-1){ ans++; l = i; } } } cout <<ans+1; }

Compilation message (stderr)

money.cpp: In function 'void update(long long int, long long int, long long int, long long int)':
money.cpp:23:18: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   23 |         int m = l+r>>1;
      |                 ~^~
money.cpp: In function 'long long int get_ans(long long int, long long int, long long int, long long int, long long int)':
money.cpp:35:14: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   35 |     int m = l+r>>1;
      |             ~^~
money.cpp: At global scope:
money.cpp:39:6: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   39 | main(){
      |      ^
money.cpp: In function 'int main()':
money.cpp:40:11: warning: unused variable 'j' [-Wunused-variable]
   40 |     int n,j,i,ans=0,sum=1,l;
      |           ^
money.cpp:40:21: warning: unused variable 'sum' [-Wunused-variable]
   40 |     int n,j,i,ans=0,sum=1,l;
      |                     ^~~
money.cpp:9:23: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
    9 | #define scan1(a) scanf("%lld",&a);
      |                  ~~~~~^~~~~~~~~~~
money.cpp:41:5: note: in expansion of macro 'scan1'
   41 |     scan1(n)
      |     ^~~~~
money.cpp:9:23: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
    9 | #define scan1(a) scanf("%lld",&a);
      |                  ~~~~~^~~~~~~~~~~
money.cpp:42:23: note: in expansion of macro 'scan1'
   42 |     for (i=1;i<=n;++i)scan1(q[i])
      |                       ^~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...