QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#218641 | #6754. Selection | curtain_cpp | WA | 9ms | 4004kb | C++14 | 3.3kb | 2023-10-18 16:11:52 | 2023-10-18 16:11:53 |
Judging History
answer
#include <iostream>
#include <algorithm>
#include <cstring>
#include <string>
#include <vector>
#include <map>
#include <cmath>
#include <queue>
#include <set>
#include <stack>
#include <unordered_map>
using namespace std;
typedef long long LL;
typedef unsigned long long uLL;
typedef pair<LL,LL> PII;
const int N = 2e5+10;
const int inf = 0x3f3f3f3f;
const double pi = acos(-1);
#define debug(x) cout<<"[debug]"#x<<"="<<x<<'\n';
template <int T>
struct ModInt {
const static int MD = T;
int x;
ModInt(LL x = 0)
: x(x % MD) {}
int get() { return x; }
ModInt operator+(const ModInt& that) const {
int x0 = x + that.x;
return ModInt(x0 < MD ? x0 : x0 - MD);
}
ModInt operator-(const ModInt& that) const {
int x0 = x - that.x;
return ModInt(x0 < MD ? x0 + MD : x0);
}
ModInt operator*(const ModInt& that) const {
return ModInt((long long)x * that.x % MD);
}
ModInt operator/(const ModInt& that) const {
return *this * that.inverse();
}
void operator+=(const ModInt& that) {
x += that.x;
if (x >= MD)
x -= MD;
}
void operator-=(const ModInt& that) {
x -= that.x;
if (x < 0)
x += MD;
}
void operator*=(const ModInt& that) { x = (long long)x * that.x % MD; }
void operator/=(const ModInt& that) { *this = *this / that; }
ModInt inverse() const {
int a = x, b = MD, u = 1, v = 0;
while (b) {
int t = a / b;
a -= t * b;
std::swap(a, b);
u -= t * v;
std::swap(u, v);
}
if (u < 0)
u += MD;
return u;
}
friend ostream& operator<<(ostream& os, ModInt x) {
os << x.get();
return os;
}
};//全局变量记得清零!
const int mod=998244353;
typedef ModInt<mod> mint;
LL gcd(LL a, LL b)
{
return b ? gcd(b, a % b) : a;
}
void solve()
{
int n,m,q;
cin>>n>>m>>q;
vector<PII>a(n);
map<LL,LL>mp,mp1;
vector<PII>g;
for(int i=0;i<n;i++){
cin>>a[i].first>>a[i].second;
mp[i]=a[i].first;
mp1[a[i].first]=i;
}
int cur=m,curpos=-1;
sort(a.rbegin(),a.rend());
for(int i=0;i<n;i++){
if(a[i].second==1){
curpos=mp1[a[i].first];
if(curpos>=m) cur--;
break;
}
}
//cout<<curpos<<'\n';
while(q--){
int op;cin>>op;
if(op==1){
int pos,gen;
cin>>pos>>gen;
for(int i=0;i<n;i++){
if(mp[pos-1]==a[i].first){
a[i].second=gen;
}
}
sort(a.rbegin(),a.rend());
cur=m;curpos=-1;
for(int i=0;i<n;i++){
if(a[i].second==1){
curpos=mp1[a[i].first];
if(curpos>=m) cur--;
break;
}
}
}else{
int p;cin>>p;
bool fl=false;
//cout<<curpos<<" ";
for(int i=0;i<cur;i++){
if(mp[p-1]==a[i].first) {
fl=true;
}
}
if(fl||p-1==curpos) cout<<1<<'\n';
else cout<<0<<'\n';
}
}
}
int main()
{
ios::sync_with_stdio(0); cin.tie(0),cout.tie(0);
solve();
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 3860kb
input:
3 2 3 3 0 1 1 2 0 2 2 1 2 0 2 2
output:
1 0
result:
ok 2 number(s): "1 0"
Test #2:
score: 0
Accepted
time: 9ms
memory: 3708kb
input:
1000 1 1000 617 0 199 0 776 0 536 1 258 0 311 1 579 0 844 0 356 1 587 0 564 0 782 0 37 1 717 1 612 1 245 1 444 1 750 0 52 1 92 1 741 0 266 1 71 1 189 1 419 1 580 1 585 1 268 1 255 0 490 1 70 1 497 1 829 1 469 1 641 0 929 1 379 1 507 0 474 1 407 0 221 1 985 0 815 1 217 0 445 1 386 0 132 0 154 0 736 1...
output:
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...
result:
ok 470 numbers
Test #3:
score: 0
Accepted
time: 8ms
memory: 4004kb
input:
1000 1 1000 541 1 236 1 583 1 99 0 324 0 107 0 459 0 854 0 772 0 426 1 717 1 806 0 335 0 503 0 860 0 463 1 306 1 813 0 947 1 989 0 736 1 713 0 65 1 222 0 428 0 680 0 652 1 681 1 661 0 595 1 474 1 70 1 641 1 688 0 591 0 20 1 330 1 563 0 38 1 638 1 391 1 979 1 488 0 829 0 956 1 395 1 694 0 669 0 567 0...
output:
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...
result:
ok 516 numbers
Test #4:
score: -100
Wrong Answer
time: 8ms
memory: 3736kb
input:
1000 50 1000 950 0 163 0 276 0 422 1 449 0 81 0 245 1 995 1 908 1 466 0 123 0 848 1 749 0 370 1 86 1 299 1 384 0 570 1 678 0 713 0 360 0 737 0 627 0 60 1 250 1 88 1 915 1 145 0 863 0 925 1 742 0 409 1 858 1 441 0 803 0 811 1 575 0 47 0 271 1 107 1 431 0 677 1 704 0 340 0 160 0 856 1 176 0 488 1 832 ...
output:
0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 ...
result:
wrong answer 87th numbers differ - expected: '1', found: '0'