제출 #402058

#제출 시각아이디문제언어결과실행 시간메모리
402058keta_tsimakuridzePoklon (COCI17_poklon)C++14
98 / 140
1244 ms11664 KiB
#include<bits/stdc++.h> #define f first #define int long long #define s second #define pii pair<pair<int,int>,int> using namespace std; const int N=2e5+5,mod=1e9+7; int t,c[N],cnt[N],a_[N],ans[N],q,n,Block; string s; pair<int,int> a[N]; pii p[N]; bool compare(pii a,pii b){ if((a.f.f-1)/Block != (b.f.f-1)/Block) return a.f.f < b.f.f; return a.f.s < b.f.s; } void remove(int u) { c[cnt[a_[u]]]--; cnt[a_[u]]--; c[cnt[a_[u]]]++; } void add(int u){ c[cnt[a_[u]]]--; cnt[a_[u]]++; c[cnt[a_[u]]]++; } main(){ // t=1; cin>>n>>q; Block=sqrt(n); for(int i=1;i<=n;i++){ cin >> a[i].f; a[i].s = i; } sort(a+1,a+n+1); int idx=0; for(int i=1;i<=n;i++){ if(a[i].f!=a[i-1].f) idx++; a_[a[i].s] = idx; } for(int i=1;i<=q;i++){ cin >> p[i].f.f >> p[i].f.s; p[i].s = i; } sort(p+1,p+q+1,compare); int curL = 0 , curR = -1; for(int i=1;i<=q;i++){ int L = p[i].f.f; int R = p[i].f.s; while(curL < L) { remove(curL); curL++; } while(curL > L){ curL--; add(curL); } while(curR < R){ curR++; add(curR); } while(curR > R){ remove(curR); curR--; } ans[p[i].s] = c[2]; } for(int i=1;i<=q;i++) cout<<ans[i]<<endl; }

컴파일 시 표준 에러 (stderr) 메시지

poklon.cpp:26:2: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   26 |  main(){
      |  ^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...