📄 2502543_wa.cpp
字号:
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
struct node
{
int num;
char style[2];
char name[21];
int year;
}pl[23];
int mark[10000];
char que[10];
bool cmp(struct node a,struct node b)
{
if(a.year!=b.year)
return a.year > b.year;
else
return a.num>b.num;
}
bool Cmp(struct node a,struct node b)
{
return a.num<b.num;
}
int main()
{
int n, ynum;
char tmp[10];
int y1, y2;
int d, m, s, g;
int D, M, S, G;
while(cin>>n&&n)
{
g = 1;D = M = S = G = 0;
for(int i = 0; i < 22; i++)
{
pl[i].num = n;
cin>>pl[i].name>>pl[i].style;
switch(pl[i].style[0])
{
case 'S': S++;break;
case 'D': D++;break;
case 'M': M++;break;
default : G++;
}
memset(mark,0,sizeof(mark));
ynum = 0;
while(cin>>tmp&&strlen(tmp)>6)
{
y1 = atoi(tmp);
y2 = atoi(&tmp[5]);
while(y1<=y2)
{
if(mark[y1]==0)
mark[y1] = 1,ynum++;
y1++;
}
}
pl[i].year = ynum;
n = atoi(tmp);
}
d = n; m = tmp[2]-'0'; s = tmp[4]-'0';
if(!G||d>D||m>M||s>S)
{
cout<<"IMPOSSIBLE TO ARRANGE"<<endl;
continue;
}
sort(pl,pl+22,cmp);
cout<<pl[0].num<<" "<<pl[0].name<<" "<<pl[0].style<<endl;
switch(pl[0].style[0])
{
case 'S': s--;break;
case 'D': d--;break;
case 'M': m--;break;
default : g--;
}
sort(&pl[1],&pl[1]+21,Cmp);
if(g)
for(i = 1; g&&i < 22; i++)
{
if(pl[i].style[0]=='G')
{
g--;
cout<<pl[i].num<<" "<<pl[i].name<<" "<<pl[i].style<<endl;
}
}
if(d)
for(i = 1; d&&i < 22; i++)
{
if(pl[i].style[0]=='D')
{
d--;
cout<<pl[i].num<<" "<<pl[i].name<<" "<<pl[i].style<<endl;
}
}
if(m)
for(i = 1; m&&i < 22; i++)
{
if(pl[i].style[0]=='M')
{
m--;
cout<<pl[i].num<<" "<<pl[i].name<<" "<<pl[i].style<<endl;
}
}
if(s)
for(i = 1; s&&i < 22; i++)
{
if(pl[i].style[0]=='S')
{
s--;
cout<<pl[i].num<<" "<<pl[i].name<<" "<<pl[i].style<<endl;
}
}
}
return 1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -