Submission #253644

#TimeUsernameProblemLanguageResultExecution timeMemory
253644Atill83Coin Collecting (JOI19_ho_t4)C++14
100 / 100
74 ms4996 KiB
#include <bits/stdc++.h> #define ff first #define ss second #define endl '\n' using namespace std; const long long INF = (long long) 1e18; const int mod = (int) 1e9+7; const int MAXN = (int) 3e5+5; typedef long long ll; typedef unsigned long long ull; typedef pair<int,int> pii; typedef pair<ll,ll> pll; ll n; int gr[MAXN][2]; int main(){ ios_base::sync_with_stdio(false); cin.tie(nullptr);cout.tie(nullptr); #ifdef Local freopen("C:/Users/Admin/Desktop/Yazilim/C/IO/int.txt","r",stdin); freopen("C:/Users/Admin/Desktop/Yazilim/C/IO/out.txt","w",stdout); #endif cin>>n; ll ans = 0; for(int i = 0; i < 2*n; i++){ int x, y; cin>>x>>y; if(x >= 1 && x <= n){ if(y <= 1){ gr[x][0]++; ans += (1 - y); }else{ gr[x][1]++; ans += (y - 2); } }else{ if(x < 1){ if(y <= 1){ gr[1][0]++; ans += (1 - x + 1 - y); }else{ gr[1][1]++; ans += (1 - x + y - 2); } }else if(x > n){ if(y <= 1){ gr[n][0]++; ans += (x - n + 1 - y); }else{ gr[n][1]++; ans += (x - n + y - 2); } } } } int usd = 0, ald = 0; for(int i = 1; i <= n; i++){ usd += gr[i][0] - 1; ald += gr[i][1] - 1; if(usd < 0 && ald > 0){ int c = min(-usd, ald); usd += c; ald -= c; ans += c; }else if(usd > 0 && ald < 0){ int c = min(usd, -ald); usd -= c; ald += c; ans += c; } ans += abs(usd) + abs(ald); } cout<<ans<<endl; #ifdef Local cout<<endl<<fixed<<setprecision(2)<<1000.0 * clock() / CLOCKS_PER_SEC<< " milliseconds "; #endif }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...