比赛 2024暑假C班集训8 评测结果 AAAATTTTTT
题目名称 玻璃球游戏 最终得分 40
用户昵称 dream 运行时间 6.061 s
代码语言 C++ 内存使用 5.72 MiB
提交时间 2024-07-08 10:02:14
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
const int N=300005;
int nxt[N];
int mk[N];
int n;
int read(){
    char c;
    int f=1,sum=0;
    c=getchar();
    while(c<'0'||c>'9'){
        if(c=='-'){
            f=-1;
        }
        c=getchar();
    }
    while(c>='0'&&c<='9'){
        sum=sum*10+c-'0';
        c=getchar();
    }
    return sum*f;
} 
void add(int x,int y){
    nxt[x]=y;
} 
int main(){
    ios::sync_with_stdio(0);
    freopen("marbles.in","r",stdin);
    freopen("marbles.out","w",stdout);
    n=read();
    for(int i=1;i<=n;i++){
        int y;
        y=read();
        add(i,y);
    }
    int q;
    q=read();
    while(q--){
        int opt,x;
        opt=read();
        x=read();
        if(opt==1){
            memset(mk,0,sizeof(mk));
            int ans=0;
            int flag=1;
            for(int i=x;i;i=nxt[i]){
                if(mk[i]){
                    flag=0;
                    break;
                }
                ans=i;
                mk[i]=1;
            }
            if(flag){
                cout<<ans<<"\n";
            }
            else{
                cout<<"CIKLUS\n";
            }
        }
        else{
            nxt[x]=0;
        }
    }
    return 0;
}