제출 #1324015

#제출 시각아이디문제언어결과실행 시간메모리
1324015pcheloveksRotating Lines (APIO25_rotate)C++20
5 / 100
1 ms824 KiB
#define _CRT_SECURE_NO_WARNINGS /* ⣿⡟⡡⠾⠛⠻⢿⣿⣿⣿⡿⠃⣿⡿⣿⠿⠛⠉⠠⠴⢶⡜⣦⡀⡈⢿⣿ ⡿⢀⣰⡏⣼⠋⠁⢲⡌⢤⣠⣾⣷⡄⢄⠠⡶⣾⡀⠀⣸⡷⢸⡷⢹⠈⣿ ⡇⢘⢿⣇⢻⣤⣠⡼⢃⣤⣾⣿⣿⣿⢌⣷⣅⡘⠻⠿⢛⣡⣿⠀⣾⢠⣿ ⣷⠸⣮⣿⣷⣨⣥⣶⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⢁⡼⠃⣼⣿ ⡟⠛⠛⠛⣿⠛⠛⢻⡟⠛⠛⢿⡟⠛⠛⡿⢻⡿⠛⡛⢻⣿⠛⡟⠛⠛⢿ ⡇⢸⣿⠀⣿⠀⠛⢻⡇⠸⠃⢸⡇⠛⢛⡇⠘⠃⢼⣷⡀⠃⣰⡇⠸⠇⢸ ⡇⢸⣿⠀⣿⠀⠛⢻⡇⢰⣿⣿⡇⠛⠛⣇⢸⣧⠈⣟⠃⣠⣿⡇⢰⣾⣿ ⣿⣿⣿⠘⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⢋⣿⠙⣷⢸⣷⠀⣿⣿⣿ ⣿⣿⣿⡇⢻⣿⣿⣿⡿⠿⢿⣿⣿⣿⠟⠋⣡⡈⠻⣇⢹⣿⣿⢠⣿⣿⣿ ⣿⣿⣿⣿⠘⣿⣿⣿⣿⣯⣽⣉⣿⣟⣛⠷⠙⢿⣷⣌⠀⢿⡇⣼⣿⣿⣿ ⣿⣿⣿⡿⢀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣶⣤⡙⢿⢗⣀⣁⠈⢻⣿ */ //#pragma GCC optimize("Ofast,unroll-loops") //#pragma GCC target("avx2,bmi,bmi2,popcnt,lzcnt") //Donald Trump pleese save this code //Babahnineeleven will win IOI 2040 //Babahnineeleven will win IOI 2041 //Babahnineeleven will win IOI 2042 //Babahnineeleven will win IOI 2043 //Babahnineeleven will win IOI 2044 //Babahnineeleven will win IOI 2045 //Babahnineeleven will win IOI 2046 //Babahnineeleven will win IOI 2047 //Babahnineeleven will win IOI 2048 //Tanya Zadniprovska will win EGOI 2025 //Andrew Holod will NOT win IOI 2025 //Andrew Holod did not qualify to IOI 2025)))))))))) //Andrew Kholod will win ICPC WF 2026 //Andrew Pavlyk is best coder in Khmelnytski //MoonSlay will NOT get Into IOI #include <iostream> #include <cstring> #include <string> #include <cmath> #include <queue> #include <bitset> #include <stack> #include <map> #include <vector> #include <set> #include <algorithm> #define endl '\n' using namespace std; FILE* stream; typedef long long ll; typedef unsigned long long ull; typedef long double ld; typedef pair < int, int > pii; typedef pair < ll, ll > pll; typedef pair < ld, ld > pdd; const long long DIM = 500007; const ld eps = 1e-12; const long long INF = 3e18; const long long Bsize = 450; const int mod = 1e9 + 7; const long long NUMSZ = 500; void rotate(vector < int > t, int x); void energy(int n, vector < int > v) { int mxAng = 50000; if (n == 2) { rotate({ 0 }, ((mxAng / 2 + v[1] - v[0]) % mxAng + mxAng) % mxAng); return; } vector < pii > a(n); for (int i = 0; i < n; i++) a[i] = { v[i], i }; sort(a.begin(), a.end()); while ((a[n - 1].first - a[0].first) % mxAng > mxAng / 2) { int mid = -1; for (int i = 0; i < n; i++) { if ((a[i].first - a[0].first) % mxAng <= mxAng / 2 && (a[n - 1].first - a[i].first) % mxAng <= mxAng / 2 ) { mid = i; break; } } int x1 = mid - 1; int x2 = n - x1 - 3; if (x1 >= x2) { rotate({ a[n - 1].second }, ((a[mid - 1].first + mxAng / 2 - a[n - 1].first) % mxAng + mxAng) % mxAng); } else { rotate({ a[0].second }, ((a[mid + 1].first + mxAng / 2 - a[0].first) % mxAng + mxAng) % mxAng); } } if ((a[n - 1].first - a[0].first) % mxAng < mxAng) { if (a[n - 1].first - (mxAng / 2) >= 0) { rotate({ a[0].second }, ((a[n - 1].first - (mxAng / 2) - a[0].first) % mxAng + mxAng) % mxAng); } else { rotate({ a[n - 1].second }, ((a[0].first + (mxAng / 2) - a[n - 1].first) % mxAng + mxAng) % mxAng); } } for (int i = 0; i < n / 2; i++) { rotate({ a[i].second }, ((a[0].first - a[i].first) % mxAng + mxAng) % mxAng); } for (int i = n / 2; i < n; i++) { rotate({ a[i].second }, ((a[n - 1].first - a[i].first) % mxAng + mxAng) % mxAng); } } /* int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); #ifdef _DEBUG freopen_s(&stream, "input.txt", "r", stdin); freopen_s(&stream, "output.txt", "w", stdout); #endif return 0; } */
#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...