Submission #1076740

#TimeUsernameProblemLanguageResultExecution timeMemory
1076740Faisal_SaqibPairs (IOI07_pairs)C++17
30 / 100
110 ms6296 KiB
#pragma optimze("Ofast") #include <iostream> #include <vector> #include <algorithm> #include <bitset> using namespace std; // #define endl '\n' #define ll long long const int N=76; int pre[N][N][N]; #include <ext/pb_ds/assoc_container.hpp> #include <ext/pb_ds/tree_policy.hpp> using namespace __gnu_pbds; #define ordered_set tree<int, null_type,less_equal<int>, rb_tree_tag,tree_order_statistics_node_update> bitset<100> have1; int have3[N][N][N]; void solve_1d() { int n,d,m; cin>>n>>d>>m; vector<int> a; for(int i=0;i<n;i++) { int x; cin>>x; a.push_back(x); } long long cnt=0; sort(begin(a),end(a)); int i=0; for(int j=0;j<n;j++) { while(i<n and a[i]<(a[j]-d)) { i++; } cnt+=(j-i); } cout<<cnt<<'\n'; } void solve_2d() { int n,d,m; cin>>n>>d>>m; vector<pair<int,int>> b; for(int i=0;i<n;i++) { int x,y; cin>>x>>y; b.push_back({x+y,x-y}); } ordered_set sp; ll cnt=0; sort(begin(b),end(b)); int j=0; for(int i=0;i<n;i++) { while(j<=i and (b[i].first-b[j].first)>d) { sp.erase(sp.upper_bound(b[j].second)); j++; } int l=b[i].second-d; int r=b[i].second+d; cnt+=sp.order_of_key(r+1); cnt-=sp.order_of_key(l); sp.insert(b[i].second); } cout<<cnt<<'\n'; } int main() { ios::sync_with_stdio(false); cout.tie(NULL); cin.tie(NULL); int b,m; cin>>b; solve_2d(); }

Compilation message (stderr)

pairs.cpp:1: warning: ignoring '#pragma optimze ' [-Wunknown-pragmas]
    1 | #pragma optimze("Ofast")
      | 
pairs.cpp: In function 'int main()':
pairs.cpp:77:11: warning: unused variable 'm' [-Wunused-variable]
   77 |     int b,m;
      |           ^
#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...