Submission #1306723

#TimeUsernameProblemLanguageResultExecution timeMemory
1306723KhoaDuyPairs (IOI07_pairs)C++20
60 / 100
26 ms1740 KiB
#include<bits/stdc++.h> using namespace std; #define endl '\n' #define ll long long struct fenwick{ vector<int> bit; void build(int n){ bit.assign(n+1,0); } void update(int i,int x){ for(;i<bit.size();i+=(i&(-i))){ bit[i]+=x; } } int query(int i){ int curr=0; for(;i;i-=(i&(-i))){ curr+=bit[i]; } return curr; } int range(int l,int r){ l=max(l,1); r=min(r,(int)bit.size()-1); if(l>r){ return 0; } return (query(r)-query(l-1)); } }; signed main(){ if(fopen("input.txt","r")){ freopen("input.txt","r",stdin); } ios_base::sync_with_stdio(false); cin.tie(NULL); int b,n,d,m; cin >> b >> n >> d >> m; if(b==1){ vector<int> v(n); for(int i=0;i<n;i++){ cin >> v[i]; } sort(v.begin(),v.end()); int ptr=-1; ll ans=0; for(int i=0;i<n;i++){ while(ptr+1<i&&v[i]-v[ptr+1]>d){ ptr++; } ans+=(i-1-ptr); } cout << ans << endl; return 0; } if(b==2){ vector<pair<int,int>> v(n); for(int i=0;i<n;i++){ cin >> v[i].first >> v[i].second; v[i]={v[i].first-v[i].second,v[i].first+v[i].second}; } fenwick bit; bit.build(2*m); sort(v.begin(),v.end()); int ptr=-1; ll ans=0; for(int i=0;i<n;i++){ while(ptr+1<n&&v[i].first-v[ptr+1].first>d){ ptr++; bit.update(v[ptr].second,-1); } ans+=bit.range(v[i].second-d,v[i].second+d); bit.update(v[i].second,1); } cout << ans << endl; return 0; } }

Compilation message (stderr)

pairs.cpp: In function 'int main()':
pairs.cpp:33:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   33 |         freopen("input.txt","r",stdin);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...