제출 #1179353

#제출 시각아이디문제언어결과실행 시간메모리
1179353andriy57Xor Sort (eJOI20_xorsort)C++20
0 / 100
750 ms589824 KiB
#define _CRT_SECURE_NO_WARNINGS #include <bits/stdc++.h> using namespace std; #define forin for(int i = 1; i <= n; i++) #define stforin for(int i = 0; i < n; i++) #define forim for(int i = 1; i <= m; i++) #define forjn for(int j = 1; j <= n; j++) #define forch(j, n) for(int i = j; i <= n; i++) #define forch2(i, j, n) for(int i = j; i <= n; i++) #define forjm for(int j = 1; j <= m; j++) #define lol long long #define lb long double #define endl '\n' #define debug cout << "Completed" << endl; #define fix(n, m) cout << fixed; cout.precision(b); cout << n << endl #define Yes cout << "YES" << endl #define No cout << "NO" << endl #define bads cout << -1 << endl #define pll pair<lol, lol> #define mod 998244353 #define fst first #define snd second #define inf 1e15 #define tofix cin ; string sbuf; ostringstream buf(sbuf); istringstream atcin(sbuf); lol gcd(lol a, lol b) { while (a != 0 && b != 0) if (a > b) a %= b; else b %= a; return a + b; } lol lcm(lol a, lol b) { return a / gcd(a, b) * b; } bool issqrt(lol n) { lb x = sqrt(n); if (x == (lol)x) return 1; return 0; } lol easy(lol n) { if (n == 1) return 0; for (int i = 2; i * i <= n; i++) if (n % i == 0) return 0; return 1; } string bin(lol v) { string ans; while (v != 0) { ans += to_string((v % 2)); v /= 2; } return ans; } //priority_queue <pll, vector<pll>, greater<pll>> q const long long N = 2e5 + 100; lol ts, n, a[N], hmm, v1, v2, f[N], s; vector<pll> ans; void solve() { cin >> n >> s; a[0] = -1; forin cin >> a[i]; a[n + 1] = a[n] + 10; while (!hmm) { hmm = 1; forin if (a[i] > a[i + 1] || a[i] < a[i-1]) { hmm = 0; if (f[i] == 0 && i < n) { a[i] ^= a[i+1]; ans.push_back({ i, i + 1 }); } else { a[i] ^= a[i - 1]; ans.push_back({ i, i - 1 }); } f[i] = (f[i] % 2 == 0); } } cout << ans.size() << endl; for (auto el : ans) cout << el.first << " " << el.second << endl; } int main() { ts = 1; //cin >> ts; while(ts--) solve(); return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...