来自小白的提问,求大神帮忙看看

在csp上做的公共钥匙盒的题,只有给的两个测试用例通过了,找了好久也不知道到底错在哪里,求大佬帮忙看看。

#include
#include
#include
#include
using namespace std;
struct Teacher{
int key_number;
int start;
int time;
int end;
};
void mycopy(Teacher aim[],Teacher src[],int length){
for(int i=0;i {
aim[i]=src[i];
}
}
int cmp1(Teacher a,Teacher b)
{
return a.start }
int cmp2(Teacher a,Teacher b){
if(a.end != b.end)
return b.end>a.end;
else if(a.end == b.end){
return b.key_number>a.key_number;
}

}
void Take_Key(int n,int key[],int length)
{
for(int i=0;i<length;i++)
{
if(key[i] == n)
{
key[i]=0;
return ;
}
}
}
void Return_Key(int n,int key[],int length){
for(int i=0;i<length;i++)
{
if(key[i] == 0)
{
key[i]=n;
return;
}

}

}
int key[1024];
int main()
{
int w,s,c;
int N,K;
int time=0;
int Take_clock=0;
int Back_clock=0;
cin>>N>>K;
for(int i=0;i key[i]=i+1;
}
Teacher teacher[K];
vector Take,Back;
for(int i=0;i Teacher x;
cin>>x.key_number>>x.start>>x.time;
x.end=x.start+x.time;
Take.push_back(x);
Back.push_back(x);

}
sort(Take.begin(),Take.end(),cmp1);
sort(Back.begin(),Back.end(),cmp2);
while(time<=12000)
{
    while(Back[Back_clock].end == time)
    {
        Return_Key(Back[Back_clock].key_number,key,N);
        Back_clock++;
    } 
    if(Take[Take_clock].start == time) 
    {
        Take_Key(Take[Take_clock].key_number,key,N);
        Take_clock++;
    }
    time ++;
}
for(int i=0;i<N;i++) cout<<key[i]<<" ";

}