Submission #516489

#TimeUsernameProblemLanguageResultExecution timeMemory
516489jurgisSpiral (BOI16_spiral)C++14
0 / 100
110 ms262148 KiB
#include <iostream> #include <bits/stdc++.h> #define F(end) for(int i =0; i< end; i++) #define ll long long using namespace std; int ps[1000][1000]; const int mod = 1e9+7; ll calc(int x1, int y1, int x2, int y2){ return (ps[max(x1, x2)][max(y1, y2)] + ps[min(x1, x2)-1][min(y1, y2)-1] - ps[min(x1, x2)-1][max(y1, y2)] - ps[max(x1, x2)][min(y1, y2)-1]) % mod; } int main() { int n, q; cin>>n>>q; bool filled = false; int grid [2*n+2][2*n+2]; int layer = 0; grid[n+1][n+1] = 1; int cnt=1; int init=1; while(layer<n){ layer++; for(int i=1; i<=2*layer; i++){ init++; grid[n+layer+1][n-layer +i+1] = init; } for(int i=1; i<=2*layer; i++){ init++; grid[n+layer - i +1][n+layer+1] = init; } for(int i=1; i<=2*layer; i++){ init++; grid[n-layer+1][n+layer - i+1] = init; } for(int i=1; i<=2*layer; i++){ init++; grid[n-layer + i+1][n -layer+1] = init; } } /* for(int i=2*n+1; i>=1; i--){ for(int j=1; j<=2*n+1; j++){ cout<<grid[j][i]<<" "; } cout<<endl; } */ F(2*n+2) ps[i][0] = 0; F(2*n+2) ps[0][i] = 0; for(int i = 1; i<=2*n+1; i++){ for(int j=1; j<=2*n+1; j++){ ps[i][j] = grid[i][j] + ps[i-1][j]+ps[i][j-1] - ps[i-1][j-1]; } } F(q){ int x1, x2, y1, y2; cin>>x1>>y1>>x2>>y2; x1+=n+1; y1+=n+1; x2+=n+1; y2+=n+1; cout<<calc(x1, y1, x2, y2)<<"\n"; } }

Compilation message (stderr)

spiral.cpp: In function 'int main()':
spiral.cpp:13:31: warning: unused variable 'filled' [-Wunused-variable]
   13 |     int n, q; cin>>n>>q; bool filled = false;
      |                               ^~~~~~
spiral.cpp:14:69: warning: unused variable 'cnt' [-Wunused-variable]
   14 |     int grid [2*n+2][2*n+2]; int layer = 0; grid[n+1][n+1] = 1; int cnt=1; int init=1;
      |                                                                     ^~~
#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...