Submission #1117280

#TimeUsernameProblemLanguageResultExecution timeMemory
1117280thelegendary08Circle Passing (EGOI24_circlepassing)C++17
100 / 100
355 ms76464 KiB
// Powered by CP Editor (https://cpeditor.org) #include<bits/stdc++.h> #define pb push_back #define int long long #define vi vector<int> #define vvi vector<vector<int>> #define vll vector<long long int> #define vvll vector<vector<long long int>> #define pii pair<int, int> #define vpii vector<pair<int, int>> #define vc vector<char> #define vvc vector<vector<char>> #define vb vector<bool> #define mii map<int,int> #define mll map<long long int, long long int> #define mivi map<int,vector<int>> #define f0r(i,n) for(int i=0;i<n;i++) #define FOR(i,k,n) for(int i=k;i<n;i++) using namespace std; int n,m,q; int dist(int x, int y){ return min(abs(x - y), min(x,y) + 2*n - max(x,y)); } int opp(int x){ if(x >= n)return x - n; else return x + n; } signed main(){ ios::sync_with_stdio(false); cin.tie(NULL); //ifstream cin(".in"); //ofstream cout(".out"); cin>>n>>m>>q; vi bf; f0r(i,m){ int x; cin>>x; bf.pb(x); bf.pb(x + n); } sort(bf.begin(), bf.end()); mii pos; f0r(i, bf.size()){ pos[bf[i]] = i; } //f0r(i, bf.size())cout<<bf[i]<<' '; //cout<<'\n'; while(q--){ int x,y; cin>>x>>y; auto it = lower_bound(bf.begin(), bf.end(), x); int rhs; int lhs; if(it == bf.end())rhs = bf[0]; else rhs = *it; int p = pos[rhs] - 1; if(p == -1)lhs = bf[bf.size() - 1]; else lhs = bf[p]; //cout<<lhs<<' '<<rhs<<'\n'; cout<<min(dist(x,y), 1+min(dist(x, lhs) + dist(y, opp(lhs)), dist(x, rhs) + dist(y, opp(rhs))))<<'\n'; } }

Compilation message (stderr)

Main.cpp: In function 'int main()':
Main.cpp:18:31: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   18 | #define f0r(i,n) for(int i=0;i<n;i++)
......
   46 |     f0r(i, bf.size()){
      |         ~~~~~~~~~~~~           
Main.cpp:46:5: note: in expansion of macro 'f0r'
   46 |     f0r(i, bf.size()){
      |     ^~~
#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...