蒟蒻连暴力都打挂了,全RE,求解
查看原帖
蒟蒻连暴力都打挂了,全RE,求解
178867
kevin006楼主2020/10/17 00:18
#include <bits/stdc++.h>
const int maxN = 10010;
struct node1
{
    int pos,dir,flag;
    node1(){pos=dir=flag=0;}
}person[maxN];
struct node2
{
    int pos,limit;
    node2(){pos=limit=0;}
}ex[maxN];
int idof[maxN];
int main()
{
    int N,M,L;
    scanf("%d%d%d",&N,&M,&L);
    idof[0]=1;
    for(int i=2;i<=M;i++)
    {
        scanf("%d",&ex[i].pos);
        idof[ex[i].pos]=i;
    }
    scanf("%d",&ex[1].limit);
    for(int i=2;i<=M;i++)scanf("%d",&ex[i].limit);
    for(int i=1;i<=N;i++)
    {
        int s,b;
        scanf("%d%d",&s,&b);
        person[i].dir=(s==0) ? 1 : L-1;
        person[i].pos=b;
    }
    int ans=0;
    for(int loop=0;loop<=L;loop++)
    {
        for(int i=1;i<=N;i++)if(person[i].flag==0)
        {
            int curp=idof[person[i].pos];
            if(ex[curp].limit>0)
            {
                ex[curp].limit--;
                person[i].flag=1;
                ans=ans^(i*curp);
            }
        }
        for(int i=1;i<=N;i++)if(person[i].flag==0)
            person[i].pos=(person[i].pos+person[i].dir)%L;
    }
    printf("%d",ans);
}

rt

2020/10/17 00:18
加载中...