题解 | 小球投盒
小球投盒
https://www.nowcoder.com/practice/e0e8a6f2ba7747b5a9f8a8dc6fa3e9f1
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
//一共有2种操作,可以简单分为3种情况:
//只执行操作1,一共得执行n次不同编号盒子,才能达成目标
//只执行操作2,至少得执行2次不同编号盒子,才能达到目标
//操作1和操作2混合操作,某个编号盒子至少执行过一次操作1和一次操作2,才能达到目标
int main() {
ll n,m,x;
int t;
cin>>n>>m;
set<ll> op1,op2;
for(ll i=1; i<=m; i++)
{
cin>>t>>x;
if(t==1)
{
op1.insert(x);
}
else {
op2.insert(x);
}
if(op1.size()==n || op2.size()>1 || (op1.count(x)>0 && op2.count(x)>0))
{
cout << i;
return 0;
}
}
cout<<-1;
return 0;
}
// 64 位输出请用 printf("%lld")