这次认证大一参加过。由于是第一次考试,印象很深。
#include<iostream>
using namespace std;
int main()
{
int n;
cin>>n;
int cnt=0;
while(n!=0)
{
if(n>=50)
{
n-=50;
cnt+=7;
}
else if(n>=30)
{
n-=30;
cnt+=4;
}
else
{
n-=10;
cnt+=1;
}
}
cout<<cnt<<endl;
}
#include<iostream>
#include<algorithm>
#include<string.h>
using namespace std;
#define maxn 1000+10
#define maxk 1000+10
int n,k;
int key[maxk];//第i个老师需要的是哪个钥匙
int get[maxk];
int back[maxk];
int key_box[maxn];//钥匙盒的状态
int queue[maxk];
bool compare(int a,int b)
{
return a>b;
}
int main()
{
cin>>n>>k;
int lastback=0;
for(int i=1;i<=k;i++)
{
int t;
cin>>key[i]>>get[i]>>t;
back[i]=get[i]+t;
lastback=max(lastback,back[i]);
}
for(int i=1;i<=n;i++)
key_box[i]=i;
int time=0;
int que_num=0;
while(time<lastback)
{
time++;
que_num=0;
for(int i=1;i<=k;i++)//if anyone back key
if(back[i]==time)//the i teacher back key
queue[que_num++]=key[i];
sort(queue,queue+que_num,compare);
while(que_num--)
for(int i=1;i<=n;i++)
if(key_box[i]==-1)
{key_box[i]=queue[que_num];break;}//以上是还钥匙部分的代码
memset(queue,0,sizeof(queue));
for(int i=1;i<=k;i++)
if(get[i]==time)
for(int j=1;j<=n;j++)
if(key_box[j]==key[i])
key_box[j]=-1;
}
for(int i=1;i<=n;i++)
cout<<key_box[i]<<" ";
}