제출 #1149415

#제출 시각아이디문제언어결과실행 시간메모리
1149415WebblyCoin Collecting (JOI19_ho_t4)C++20
0 / 100
0 ms328 KiB
// Problem: D - Product Sum // Contest: Virtual Judge - Matrix Multiplication + Convex Hull Trick // URL: https://vjudge.net/contest/692732#problem/D // Memory Limit: 256 MB // Time Limit: 1000 ms // // Powered by CP Editor (https://cpeditor.org) //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // // Solution // Webbly, 27.01.2023 // // // Arsen ne katai // // /////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////// #include<bits/stdc++.h> /** #include <algorithm> #include <iostream> #include <vector> #include <queue> #include <cmath> #include <map> #include <set> #include <time.h> */ //#pragma GCC optimize("O3") //#pragma GCC optimize("fast-loops") //#pragma comment(linker, "/stack:200000000") //#pragma GCC optimize("Ofast") //#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native") /** #pragma GCC optimize("-funsafe-loop-optimizations") #pragma GCC optimize("-funroll-loops") #pragma GCC optimize("-fwhole-program") #pragma GCC optimize("Ofast,no-stack-protector") #pragma GCC optimize("-fthread-jumps") #pragma GCC optimize("-falign-functions") #pragma GCC optimize("-falign-jumps") #pragma GCC optimize("-falign-loops") #pragma GCC optimize("-falign-labels") #pragma GCC optimize("-fcaller-saves") #pragma GCC optimize("-fcrossjumping") #pragma GCC optimize("-fcse-follow-jumps") #pragma GCC optimize("-fcse-skip-blocks") #pragma GCC optimize("-fdelete-null-pointer-checks") #pragma GCC optimize("-fdevirtualize") #pragma GCC optimize("-fexpensive-optimizations") #pragma GCC optimize("-fgcse") #pragma GCC optimize("-fgcse-lm") #pragma GCC optimize("-fhoist-adjacent-loads") #pragma GCC optimize("-finline-small-functions") #pragma GCC optimize("-findirect-inlining") #pragma GCC optimize("-fipa-sra") #pragma GCC optimize("-foptimize-sibling-calls") #pragma GCC optimize("-fpartial-inlining") #pragma GCC optimize("-fpeephole2") #pragma GCC optimize("-freorder-blocks") #pragma GCC optimize("-freorder-functions") #pragma GCC optimize("-frerun-cse-after-loop") #pragma GCC optimize("-fsched-interblock") #pragma GCC optimize("-fsched-spec") #pragma GCC optimize("-fschedule-insns") #pragma GCC optimize("-fschedule-insns2") #pragma GCC optimize("-fstrict-aliasing") #pragma GCC optimize("-fstrict-overflow") #pragma GCC optimize("-ftree-switch-conversion") #pragma GCC optimize("-ftree-tail-merge") #pragma GCC optimize("-ftree-pre") #pragma GCC optimize("-ftree-vrp") #pragma GCC target("avx") */ #define ll long long #define kebzaro ios_base::sync_with_stdio(0),cin.tie(0),cout.tie(0); #define pb push_back #define mp make_pair #define all(x) x.begin(),x.end() #define flush cout.flush() using namespace std; const ll mod = (ll)1e9 + 7, mod3 = 998244353, inf = (ll)2e15, P = 31; void judge(string name){ if (name.size()){ freopen((name + ".in").c_str(), "r", stdin); freopen((name + "out").c_str(), "w", stdout); } } ll rnd(){ ll x = rand(); return rand() ^ x; } ll binpow (ll a, ll b){ ll ans = 1; while(b){ if (b & 1){ ans *= a; ans %= mod; } b >>= 1; a *= a; a %= mod; } return ans; } ll gcd(ll a, ll b){ return (b ? gcd(b, a % b) : a); } ll lcm(ll a, ll b){ return a / gcd(a, b) * b; } struct tr{ ll four, seven, inc, dec; }; struct line{ ll b, c; }; ll n, m, k, a[100005], b[500005], dp[100005][3]; bool innery(ll x){ return x <= n && x >= 1; } bool innerh(ll y){ return y <= 2 && y >= 1; } void sarsen(){ cin >> n; ll ans = 0; for (ll i = 1; i <= 2 * n; i++){ cin >> a[i] >> b[i]; if (innerh(b[i]) && innery(a[i])){ dp[a[i]][b[i]]++; continue; } if (innerh(b[i])){ if (a[i] > n){ ans += a[i] - n; dp[n][b[i]]++; } else{ ans += 1 - a[i]; dp[1][b[i]]++; } } if (innery(a[i])){ if (b[i] > 2){ ans += b[i] - 2; dp[a[i]][2]++; } else{ ans += 1 - b[i]; dp[a[i]][1]++; } } if (a[i] < 1 && b[i] > 2){ ans += b[i] - 2 + 1 - a[i]; dp[1][2]++; } if (a[i] > n && b[i] > 2){ ans += b[i] - 2 + a[i] - n; dp[n][2]++; } if (a[i] < 1 && b[i] < 1){ ans += 1 - b[i] + 1 - a[i]; dp[1][1]++; } if (a[i] > n && b[i] < 1){ ans += a[i] - n + 1 - b[i]; dp[n][1]++; } } ll l = 1; for (ll i = 1; i <= n; i++){ while(dp[i][1] > 1){ if (!dp[l][1]){ dp[l][1] = 1; dp[i][1]--; ans += abs(i - l); } else if (!dp[l][2]){ dp[l][2] = 1; dp[i][1]--; ans += abs(i - l) + 1; } if (dp[l][1] && dp[l][2]) l++; } while(dp[i][2] > 1){ if (!dp[l][1]){ dp[l][1] = 1; dp[i][2]--; ans += abs(i - l) + 1; } else if (!dp[l][2]){ dp[l][2] = 1; dp[i][2]--; ans += abs(i - l); } if (dp[l][1] && dp[l][2]) l++; } } cout << ans; } int main(){ kebzaro judge(""); ll TT = 1, tests = 1; //cin >> TT; while(TT--){ //cout << "Case " << tests << ": "; sarsen(); //tests++; } return 0; } /** */

컴파일 시 표준 에러 (stderr) 메시지

joi2019_ho_t4.cpp: In function 'void judge(std::string)':
joi2019_ho_t4.cpp:95:24: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   95 |                 freopen((name + ".in").c_str(), "r", stdin);
      |                 ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
joi2019_ho_t4.cpp:96:24: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   96 |                 freopen((name + "out").c_str(), "w", stdout);
      |                 ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...