Submission #619939

#TimeUsernameProblemLanguageResultExecution timeMemory
6199391nePairs (IOI07_pairs)C++14
18 / 100
440 ms524288 KiB
#include<bits/stdc++.h> using namespace std; int main(){ ios_base::sync_with_stdio(false); cin.tie(0); int b,n,d,m;cin>>b>>n>>d>>m; if (b == 1){ vector<int>arr(m + 1,0); for (int i = 0;i<n;++i){ int a;cin>>a; arr[a]++; } for (int i = 1;i<=m;++i){ arr[i]+=arr[i - 1]; } long long ans = arr[d] * (arr[d] - 1)/2; for (int i = d + 1;i<=m;++i){ //cout<<i<<" "<<(arr[i] - arr[i - 1])<<" "<<arr[i - 1] - arr[i - d - 1]<<'\n'; long long pos = (arr[i] - arr[i - 1]) * (arr[i - 1] - arr[i - d - 1]); ans+=pos; ans+=(arr[i] - arr[i - 1]) * (arr[i] - arr[i - 1] - 1)/2; } cout<<ans<<'\n'; } else if (b == 2){ vector<vector<int>>brr(m + 1,vector<int>(m + 1,0)); for (int i = 0;i<n;++i){ int a,b;cin>>a>>b; brr[a][b]++; } vector<vector<int>>corner_sum(m + 1,vector<int>(m + 1,-1)); function<int(int,int)>dfs = [&](int i,int j){ if (i < 0 || j > m)return 0; if (corner_sum[i][j]!=-1)return corner_sum[i][j]; corner_sum[i][j] = brr[i][j] + dfs(i - 1,j + 1); return corner_sum[i][j]; }; for (int i = 1;i<=m;++i){ for (int j = 0;j<=m;++j){ brr[i][j] +=brr[i - 1][j]; } } for (int i = 0;i<=m;++i){ for (int j = 0;j<=m;++j){ dfs(i,j); } } long long ans = 0; for (int i = 1;i + d<=m;++i){ for (int j = 0;j<=m;++j){ ans+=(corner_sum[i + d][j] - ((i - 1>=0 && j + d + 1<=m)?corner_sum[i - 1][j + d + 1] : 0)) * (brr[i][j] - brr[i - 1][j]); } } cout<<ans<<'\n'; } else{ } return 0; }
#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...