QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#662544 | #7689. Flipping Cards | jiangtao | WA | 0ms | 3876kb | C++20 | 1.8kb | 2024-10-21 02:50:11 | 2024-10-21 02:50:11 |
Judging History
answer
// Problem: M. Flipping Cards
// Contest: Codeforces - 2023 China Collegiate Programming Contest (CCPC) Guilin Onsite (The 2nd Universal Cup. Stage 8: Guilin)
// URL: https://codeforces.com/gym/104768/problem/M
// Memory Limit: 1024 MB
// Time Limit: 2500 ms
// Begin:2024-10-20 17:07:06
//
// Powered by CP Editor (https://cpeditor.org)
#include <bits/stdc++.h>
using namespace std;
#define int long long
const int N = 2e5 + 5, M = 1e9 + 7, mod = 998244353;
#define YES {cout << "Yes" << endl; return ;}
#define NO {cout << "No" << endl; return ;}
void solve(){
int n;
cin >> n;
vector<int> a(n + 1), b(n + 1);
vector<int> now;
for (int i = 1; i <= n; i++) cin >> a[i] >> b[i], now.push_back(a[i]);
auto check = [&](int mid){
int sum = 0;
for (int i = 1; i <= n; i ++ ) if (a[i] >= mid) sum ++;
vector<int> s(n + 1);
int res = INT_MIN, l = -1, r = -1;
int minn = 0, id = -1;
for (int i = 1; i <= n; i++){
if (a[i] < mid && b[i] < mid) s[i] = 0;
else if (a[i] >= mid && b[i] >= mid) s[i] = 0;
else if (a[i] < mid && b[i] >= mid) s[i] = 1;
else if (a[i] >= mid && b[i] < mid) s[i] = -1;
s[i] += s[i - 1];
if (res < s[i] - minn) {res = s[i] - minn; l = id; r = i;}
if (s[i] < minn) {minn = s[i]; id = i;}
}
int cnt = sum + res;
if (n / 2 + 1 <= cnt) return true;
return false;
};
int l = 1, r = 1e9;
while (l < r){
int mid = (l + r + 1) >> 1;
if (check(mid)){
l = mid;
}else{
r = mid - 1;
}
}
cout << l << "\n";
}
signed main(){
ios::sync_with_stdio(false);
cin.tie(nullptr);
int ___ = 1;
// cin >> ___;
while (___--)
solve();
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 3640kb
input:
5 3 6 5 2 4 7 6 4 2 8
output:
6
result:
ok 1 number(s): "6"
Test #2:
score: -100
Wrong Answer
time: 0ms
memory: 3876kb
input:
1 2 1
output:
1
result:
wrong answer 1st numbers differ - expected: '2', found: '1'