515 条题解
-
0
q234rty LV 10 @ 2014-11-30 16:20:35
type
Tmingzi=array[1..21] of char;
student=record
mingzi:Tmingzi;
lenmingzi:longint;
qmcj:longint;
bjcj:longint;
gb:boolean;
xb:boolean;
lw:longint;
jxj:longint;
end;
var
temp1,temp2,h1,h2,h3:char;
a:array[1..100] of student;
i,n,j,max,sum:longint;
procedure getjxj(var s:student);
begin
if (s.qmcj>80) and (s.lw>=1) then s.jxj:=s.jxj+8000;
if (s.qmcj>85) and (s.bjcj>80) then s.jxj:=s.jxj+4000;
if s.qmcj>90 then s.jxj:=s.jxj+2000;
if (s.qmcj>85) and (s.xb) then s.jxj:=s.jxj+1000;
if (s.bjcj>80) and (s.gb) then s.jxj:=s.jxj+850;
end;
begin
readln(n);
for i:=1 to n do
begin
for j:=1 to 21 do
begin
read(a[i].mingzi[j]);
if a[i].mingzi[j]=' ' then
begin
a[i].lenmingzi:=j-1;
break;
end;
end;
readln(a[i].qmcj,a[i].bjcj,h1,temp1,h2,temp2,h3,a[i].lw);
case temp1 of
'Y':a[i].gb:=true;
'N':a[i].gb:=false;
end;
case temp2 of
'Y':a[i].xb:=true;
'N':a[i].xb:=false;
end;
end;
for i:=1 to n do
getjxj(a[i]);
max:=1;
for i:=n downto 1 do
if a[i].jxj>=a[max].jxj then max:=i;
sum:=0;
for i:=1 to n do
sum:=sum+a[i].jxj;
for i:=1 to a[max].lenmingzi do
write(a[max].mingzi[i]);
writeln;
writeln(a[max].jxj);
writeln(sum);
end. -
02014-11-07 22:37:53@
可能比较笨。。。但是AC了
#include<iostream>
#include<algorithm>
#include<cstdlib>
using namespace std;
typedef struct book{
int num;
char name[20];
int endaver;
int classaver;
char emp;
char west;
int pass;
int sum;};
book que[101];
int is_west(int a){
return (que[a].west=='Y') ? 1:0;}
int is_pass(int a){
return (que[a].pass>0)?1:0;}
int is_emp(int a){
return (que[a].emp=='Y')? 1:0;}
int prize(int a){
if(que[a].classaver>80&&is_emp(a))
que[a].sum+=850;
if(que[a].endaver>90)
que[a].sum+=2000;
if(que[a].endaver>80&&is_pass(a))
que[a].sum+=8000;
if(que[a].endaver>85&&que[a].classaver>80)
que[a].sum+=4000;
if(que[a].endaver>85&&is_west(a))
que[a].sum+=1000;}
int main(){
int n,summ=0;
cin >>n;
int max=0,maxi=0;
for(int i=0;i<n;i++){
scanf("%s %d %d %c %c %d",que[i].name,&que[i].endaver,&que[i].classaver,&que[i].emp,&que[i].west,&que[i].pass) ;
que[i].num=i;
prize(i);
if(que[i].sum>max)
{
max=que[i].sum;
maxi=i;
}}
for(int aaa=0;aaa<n;aaa++){
summ+=que[aaa].sum;
}
printf("%s\n",que[maxi].name);
printf("%d\n",max);
printf("%d",summ);
} -
02014-11-07 22:37:42@
可能比较笨。。。但是AC了
#include<iostream>
#include<algorithm>
#include<cstdlib>
using namespace std;
typedef struct book{
int num;
char name[20];
int endaver;
int classaver;
char emp;
char west;
int pass;
int sum;};
book que[101];
int is_west(int a){
return (que[a].west=='Y') ? 1:0;}
int is_pass(int a){
return (que[a].pass>0)?1:0;}
int is_emp(int a){
return (que[a].emp=='Y')? 1:0;}
int prize(int a){
if(que[a].classaver>80&&is_emp(a))
que[a].sum+=850;
if(que[a].endaver>90)
que[a].sum+=2000;
if(que[a].endaver>80&&is_pass(a))
que[a].sum+=8000;
if(que[a].endaver>85&&que[a].classaver>80)
que[a].sum+=4000;
if(que[a].endaver>85&&is_west(a))
que[a].sum+=1000;}
int main(){
int n,summ=0;
cin >>n;
int max=0,maxi=0;
for(int i=0;i<n;i++){
scanf("%s %d %d %c %c %d",que[i].name,&que[i].endaver,&que[i].classaver,&que[i].emp,&que[i].west,&que[i].pass) ;
que[i].num=i;
prize(i);
if(que[i].sum>max)
{
max=que[i].sum;
maxi=i;
}}
for(int aaa=0;aaa<n;aaa++){
summ+=que[aaa].sum;
}
printf("%s\n",que[maxi].name);
printf("%d\n",max);
printf("%d",summ);
} -
02014-11-03 15:56:07@
#include<cstdio>
#include<cstdlib>
#include<cmath>
#include<cstring>
int n,a,b,c,k,ans[105],sum,max;
char name[105][40],ju1,ju2,s[40];
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
scanf("%s%d%d %c %c %d",name[i],&a,&b,&ju1,&ju2,&c);
if(a>80&&c>=1) ans[i]+=8000;
if(a>85&&b>80) ans[i]+=4000;
if(a>90) ans[i]+=2000;
if(a>85&&ju2=='Y') ans[i]+=1000;
if(b>80&&ju1=='Y') ans[i]+=850;
sum+=ans[i];
if(ans[i]>max)
{
max=ans[i];
k=i;
}
}
printf("%s",name[k]);
printf("\n%d\n%d\n",ans[k],sum);
return 0;
} -
02014-10-25 11:15:43@
#include<iostream>
#include<algorithm>
#include<queue>
#include<string>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<ctime>
#include<cmath>
#include<cctype>
using namespace std;
int N,alm=0,aln=0;
struct student
{
int num;
string name;
int rmb;
}stu[101];
const bool stusort(const student &a,const student &b)
{
if(a.rmb!=b.rmb) return a.rmb>b.rmb;
return a.num<b.num;
}
int main()
{
//freopen(".in","r",stdin);
//freopen(".out","w",stdout);
scanf("%d\n",&N);
for(int i=1;i<=N;i++)
{
alm=0;
int fnl=0,cnl=0,lw=0;
char tmp1,tmp2;
cin>>stu[i].name;
scanf(" %d%d",&fnl,&cnl);
scanf(" %c",&tmp1);
scanf(" %c",&tmp2);
scanf(" %d",&lw);
if(fnl>80 && lw>=1)
alm+=8000;
if(fnl>85 && cnl>80)
alm+=4000;
if(fnl>90)
alm+=2000;
if(fnl>85 && tmp2=='Y')
alm+=1000;
if(cnl>80 && tmp1=='Y')
alm+=850;
aln+=alm;
stu[i].rmb=alm;
stu[i].num=i;
}
sort(stu+1,stu+N+1,stusort);
cout<<stu[1].name<<endl;
printf("%d\n%d\n",stu[1].rmb,aln);
return 0;
}
此题弱爆,鉴定完毕 -
02014-09-30 22:48:54@
#include <iostream>
#include <math.h>
using namespace std;
int main()
{
long long money[102],n,i,j,mark[102],cmark[102],art[102],sum,max;
int turn[102];
string name[102],xue[102],xi[102],str;
cin>>n;
for (i=1;i<=n;i++)
{
cin>>name[i];
cin>>mark[i];
cin>>cmark[i];
cin>>xue[i];
cin>>xi[i];
cin>>art[i];
turn[i]=i;
} //输入
for (i=1;i<=n;i++) money[i]=0; //清零for (i=1;i<=n;i++)
{
if (mark[i]>80 && art[i]>=1) money[i]=money[i]+8000;
if (mark[i]>85 && cmark[i]>80) money[i]=money[i]+4000;
if (mark[i]>90) money[i]=money[i]+2000;
if (mark[i]>85 && xi[i]=="Y") money[i]=money[i]+1000;
if (xue[i]=="Y" && cmark[i]>80) money[i]=money[i]+850;
} //计算每个人的奖学金
sum=0;
for (i=1;i<=n;i++) sum=sum+money[i];max=0;
for (i=1;i<=n;i++)
{
if (max<money[i])
{
max=money[i];
str=name[i];
}
}
cout<<str<<endl;
cout<<max<<endl;
cout<<sum<<endl;
system("pause");
return 0;
} -
02014-09-28 20:43:42@
请帮我看一下哪里错了(第二组数据在运算时错误),
var i,q,n,k:longint;
m,p,l,o:int64;
a,s:string;
lw,jj:array[1..100]of int64;
mz:array[1..100]of string;
g:array[1..100,1..2]of string;
j:array[1..100,1..2]of int64;
begin
readln(n);
for i:=1 to n do
begin
readln(a);
for q:=1 to 6 do
begin
if q<>6 then begin k:=pos(' ',a);
s:=copy(a,1,k-1) end else begin k:=1; s:=copy(a,1,k); val(s,lw[i]); end;
val(s,j[i,q-1]);
g[i,q-3]:=s;
if q=1 then mz[i]:=copy(a,1,k-1);
delete(a,1,k);
end;
if (j[i,1]>80)and(lw[i]>=1) then jj[i]:=jj[i]+8000;
if (j[i,1]>85)and(j[i,2]>80) then jj[i]:=jj[i]+4000;
if j[i,1]>90 then jj[i]:=jj[i]+2000;
if (j[i,1]>85)and(g[i,2]='Y') then jj[i]:=jj[i]+1000;
if (j[i,2]>80)and(g[i,1]='Y') then jj[i]:=jj[i]+850;
if o<jj[i] then begin p:=i; o:=jj[i]; end;
m:=m+jj[i];
end;
writeln(mz[p]);
writeln(o);
writeln(m);
end. -
02014-08-23 13:32:23@
###Block code
#include <stdio.h>char stu[110][30];
int n;
int sch[110];int main() {
int i, k, t;
scanf("%d", &n);
for (i = 0; i < n; i++) {
scanf("%s %d %d %c %c %d", stu[i] + 5, &stu[i][0], &stu[i][1], &stu[i][2], &stu[i][3], &t);
stu[i][4] = t + 1;
}
for (i = 0; i < n; i++) {
if (stu[i][0] > 80 && stu[i][4] > 1) sch[i] += 8000;
if (stu[i][0] > 85 && stu[i][1] > 80) sch[i] += 4000;
if (stu[i][0] > 90) sch[i] += 2000;
if (stu[i][0] > 85 && stu[i][3] == 'Y') sch[i] += 1000;
if (stu[i][1] > 80 && stu[i][2] == 'Y') sch[i] += 850;
}
k = 0;
for (i = 1; i < n; i++)
if (sch[i] > sch[k])
k = i;
printf("%s\n%d\n", stu[k] + 5, sch[k]);
for (i = 0, k = 0; i < n; i++)
k += sch[i];
printf("%d\n", k);
return 0;
} -
02014-08-18 18:07:20@
#include <iostream>
#include <string>
#ifdef DEBUG
#include <fstream>
#endif
using namespace std;
class Student
{
public:
string name;
int qm;
int bj;
string gb;
string xb;
int paper;
int getScholar()
{
int sum = 0;if((qm > 80) && (paper > 0))
sum += 8000;if((qm > 85) && (bj > 80))
sum += 4000;if(qm > 90)
sum += 2000;if((qm > 85) && (xb == "Y"))
sum += 1000;if((bj > 80) && (gb == "Y"))
sum += 850;return sum;
}
};
int main()
{
#ifdef DEBUG
#define INPUT input
ifstream input;
input.open("data.txt");
#else
#define INPUT cin
#endif
int N;
INPUT >> N;
Student* t = new Student[N];
int Mmoney(0), Smoney(0);
string Mname;for(int i = 0; i < N; i++)
{
INPUT >> t[i].name >> t[i].qm >> t[i].bj >> t[i].gb >> t[i].xb >> t[i].paper;if(t[i].getScholar() > Mmoney)
{
Mmoney = t[i].getScholar();
Mname = t[i].name;
}Smoney += t[i].getScholar();
}cout << Mname << endl;
cout << Mmoney << endl;
cout << Smoney << endl;
delete [] t;
#ifdef DEBUG
input.close();
#endifreturn 0;
} -
02014-08-10 12:52:24@
###Block bode
type data=record
names:string;
qimo:0..100;
pingyi:0..100;
ganbu:boolean;
xibu:boolean;
lunwen:0..10;
jiangxuejin:longint;
end;var x:array[1..100] of data;
i,n,pos,sum:longint;
t:char;begin
readln(n);
for i:=1 to n do
with x[i] do
begin
read(t);
while t<>' ' do
begin
names:=names+t;
read(t);
end;
read(qimo,pingyi);
read(t);
read(t);
if t='Y' then
ganbu:=true;
read(t);
read(t);
if t='Y' then
xibu:=true;
readln(lunwen);
if (qimo>80) and (lunwen>0) then
inc(jiangxuejin,8000);
if (qimo>85) and (pingyi>80) then
inc(jiangxuejin,4000);
if qimo>90 then
inc(jiangxuejin,2000);
if (qimo>85) and xibu then
inc(jiangxuejin,1000);
if (pingyi>80) and ganbu then
inc(jiangxuejin,850);
end;
pos:=1;
sum:=x[1].jiangxuejin;
for i:=2 to n do
with x[i] do
begin
if jiangxuejin>x[pos].jiangxuejin then
pos:=i;
inc(sum,jiangxuejin);
end;
writeln(x[pos].names);
writeln(x[pos].jiangxuejin);
writeln(sum);
end. -
02014-08-10 12:50:52@
type data=record
names:string;
qimo:0..100;
pingyi:0..100;
ganbu:boolean;
xibu:boolean;
lunwen:0..10;
jiangxuejin:longint;
end;var x:array[1..100] of data;
i,n,pos,sum:longint;
t:char;begin
readln(n);
for i:=1 to n do
with x[i] do
begin
read(t);
while t<>' ' do
begin
names:=names+t;
read(t);
end;
read(qimo,pingyi);
read(t);
read(t);
if t='Y' then
ganbu:=true;
read(t);
read(t);
if t='Y' then
xibu:=true;
readln(lunwen);
if (qimo>80) and (lunwen>0) then
inc(jiangxuejin,8000);
if (qimo>85) and (pingyi>80) then
inc(jiangxuejin,4000);
if qimo>90 then
inc(jiangxuejin,2000);
if (qimo>85) and xibu then
inc(jiangxuejin,1000);
if (pingyi>80) and ganbu then
inc(jiangxuejin,850);
end;
pos:=1;
sum:=x[1].jiangxuejin;
for i:=2 to n do
with x[i] do
begin
if jiangxuejin>x[pos].jiangxuejin then
pos:=i;
inc(sum,jiangxuejin);
end;
writeln(x[pos].names);
writeln(x[pos].jiangxuejin);
writeln(sum);
end. -
02014-08-09 18:30:04@
C++ 无文件版本 AC
a数组多余,是为了其他可能出现的情况而存在,可精简。#include <iostream>
#include <algorithm>
#include <string>
using namespace std;
const int maxn=101;
typedef struct
{
string name;
int score_exam,score_class;
char sir,west;
int essay;
int scholar,num;
}student;
int main()
{
student a[maxn];
int n,sum=0;
cin>>n;
string ans;
int max=0;
for(int i=1;i<=n;i++)
{
a[i].scholar=0; a[i].num=i;
cin>>a[i].name>>a[i].score_exam>>a[i].score_class>>a[i].sir>>a[i].west>>a[i].essay;
if(a[i].score_exam>80 && a[i].essay>=1) a[i].scholar+=8000;
if(a[i].score_exam>85 && a[i].score_class>80) a[i].scholar+=4000;
if(a[i].score_exam>90) a[i].scholar+=2000;
if(a[i].score_exam>85 && a[i].west=='Y') a[i].scholar+=1000;
if(a[i].score_class>80 && a[i].sir=='Y') a[i].scholar+=850;
sum+=a[i].scholar;
if(a[i].scholar>max)
{
ans=a[i].name;
max=a[i].scholar;
}
}
cout<<ans<<endl<<max<<endl<<sum;
return 0;
} -
02014-08-02 23:40:13@
3wa
原因:
细节问题
主要是变量以及数组的初始化问题
其中计算单个学生奖金的ans没有初始化
字符数组更新之前未初始化,以至于cout>>s,后面还残留有之前的值
-
02014-07-27 21:35:31@
#include <iostream>
#include <string>
#ifdef DEBUG
#include <fstream>
#endif
using namespace std;
class Student {
public:
string name;
int qm;
int bj;
string gb;
string xb;
int paper;
int getScholar() {
int sum = 0;
if((qm>80)&&(paper>0))
sum+=8000;
if((qm>85)&&(bj>80))
sum+=4000;
if(qm>90)
sum+=2000;
if((qm>85)&&(xb=="Y"))
sum+=1000;
if((bj>80)&&(gb=="Y"))
sum+=850;
return sum;
}
};
int main() {
#ifdef DEBUG
#define INPUT input
ifstream input;
input.open("data.txt");
#else
#define INPUT cin
#endif
int N;
INPUT>>N;
Student* t = new Student[N];
int Mmoney(0),Smoney(0);
string Mname;
for(int i = 0;i<N;i++) {
INPUT>>t[i].name>>t[i].qm>>t[i].bj>>t[i].gb>>t[i].xb>>t[i].paper;
if(t[i].getScholar()>Mmoney) {
Mmoney = t[i].getScholar();
Mname = t[i].name;
}
Smoney += t[i].getScholar();
}
cout<<Mname<<endl;
cout<<Mmoney<<endl;
cout<<Smoney<<endl;
delete [] t;
#ifdef DEBUG
input.close();
#endifreturn 0;
} -
02014-07-27 21:35:13@
面向对象的思路
#include <iostream>
#include <string>
#ifdef DEBUG
#include <fstream>
#endif
using namespace std;
class Student {
public:
string name;
int qm;
int bj;
string gb;
string xb;
int paper;
int getScholar() {
int sum = 0;
if((qm>80)&&(paper>0))
sum+=8000;
if((qm>85)&&(bj>80))
sum+=4000;
if(qm>90)
sum+=2000;
if((qm>85)&&(xb=="Y"))
sum+=1000;
if((bj>80)&&(gb=="Y"))
sum+=850;
return sum;
}
};
int main() {
#ifdef DEBUG
#define INPUT input
ifstream input;
input.open("data.txt");
#else
#define INPUT cin
#endif
int N;
INPUT>>N;
Student* t = new Student[N];
int Mmoney(0),Smoney(0);
string Mname;
for(int i = 0;i<N;i++) {
INPUT>>t[i].name>>t[i].qm>>t[i].bj>>t[i].gb>>t[i].xb>>t[i].paper;
if(t[i].getScholar()>Mmoney) {
Mmoney = t[i].getScholar();
Mname = t[i].name;
}
Smoney += t[i].getScholar();
}
cout<<Mname<<endl;
cout<<Mmoney<<endl;
cout<<Smoney<<endl;
delete [] t;
#ifdef DEBUG
input.close();
#endifreturn 0;
} -
02014-07-26 19:59:22@
program p16;
var a,b:string;
e,f,i,j:longint;
d:char;function js(var a2:string):longint;
var cost,b2,b3,b4,b5,b6,b7,b8:longint; {qi mo pingjun chengji:b4}
c1,c2,c3:char; {c1:gb c2:west}
a3:string; {banji ping yi chengji:b5 b6:lun wen shu}
begin
cost:=0;
b8:=0;
b2:=1;
repeat
b2:=b2+1;
until ord(a2[b2])=32;
b2:=b2+1;
b3:=b2;
while (ord(a2[b3])<>32) do b3:=b3+1;
a3 := copy(a2, b2, b3-b2);
val(a3,b4,b8);
b3 := b3+1;
b2:=b3;
while (ord(a2[b3])<>32) do b3 := b3 +1;
a3 := copy(a2,b2,b3-b2);
val(a3,b5,b8);
b3:=b3+1;
c1:=a2[b3];
c2:=a2[b3+2];
b3:=b3+4;
b2:=b3;
if (ord(a2[b3+1])=48) then begin
a3 := copy(a2,b3,2);
val(a3,b6,b8);
end
else begin
a3 := copy(a2,b3,1);
val(a3,b6,b8);
end;
if (b5>80)and(c1='Y') then cost := cost+850;
if (b4>85)and(c2='Y') then cost := cost+1000;
if (b4>90) then cost := cost+2000;
if (b4>85)and(b5>80) then cost := cost+4000;
if (b4>80)and(b6>=1) then cost := cost+8000;
js := cost;
end;
begin
readln(e);
readln(a);
f:=f+js(a);
for j := 2 to e do begin
readln(b);
f:=f+js(b);
if js(b)>js(a) then a := b;
end;
j := 1;
while ord(a[j])<>32 do begin
write(a[j]);
j:=j+1;
end;
writeln;
writeln(js(a));
write(f);
end. -
02014-07-20 22:45:49@
C++标准题解
#include <string>
#include <cstdlib>
#include <iostream>
using namespace std;
struct info{
string name;
int examScore;
int classScore;
char ganbu;
char xibu;
int lecture;
};
struct result{
string name;
int count;
int sum;
};
void input(info info[], int N)
{
for(int i = 0; i < N; ++i)
std::cin>>info[i].name>>info[i].examScore>>info[i].classScore>>info[i].ganbu>>info[i].xibu>>info[i].lecture;
}
void output(result re)
{std::cout<<re.name<<endl;
std::cout<<re.count<<endl;
std::cout<<re.sum<<endl;
}
void cul(info std[],int N)
{
int oldCount = 0,newCount = 0,sum = 0;
int pos = -1;
for(int i = 0; i < N; ++i)
{
newCount = 0;if(std[i].examScore > 90)
{
newCount +=2000;
sum += 2000;
}
if(std[i].examScore > 80 && std[i].lecture > 0)
{
newCount +=8000;
sum +=8000;
}
if(std[i].examScore > 85 && std[i].classScore > 80)
{
newCount +=4000;
sum +=4000;
}
if(std[i].examScore > 85 && std[i].xibu == 'Y')
{
newCount +=1000;
sum +=1000;
}
if(std[i].classScore > 80 && std[i].ganbu == 'Y')
{
newCount +=850;
sum +=850;
}
if(oldCount < newCount)
{
oldCount = newCount;
pos = i;}
}
result re;
re.name = std[pos].name;
re.count = oldCount;
re.sum = sum;
output(re);}
int main(int argc, char** argv)
{
int N;
std::cin>>N;
if(N < 1 || N > 100)
return -1;
info std[N];
input(std,N);
cul(std,N);return 0;
} -
02014-07-18 17:26:43@
#include<cstdio>
#include<iostream>
#include<string>
int q[101],j[101],l[101],jiang[101];
using namespace std;
main()
{
int a,n,i,k,c,z;
scanf("%d",&n);
char x[101],s[101];
string b[101];
for(i=1;i<=n;++i)
{
cin>>b[i];
scanf(" %d",&q[i]);
scanf(" %d",&j[i]);
cin>>x[i]>>s[i];
scanf(" %d",&l[i]);
}
for(k=1;k<=n;++k)
{
jiang[k]=0;
}
for(i=1;i<=n;++i)
{
if((q[i]>80)&&(l[i]>=1))
{
jiang[i]+=8000;
}
if((q[i]>85)&&(j[i]>80))
{
jiang[i]+=4000;
}
if(q[i]>90)
{
jiang[i]+=2000;
}
if((q[i]>85)&&(s[i]=='Y'))
{
jiang[i]+=1000;
}
if((j[i]>80)&&(x[i]=='Y'))
{
jiang[i]+=850;
}
}
z=0;
for(k=1;k<=n;++k)
{
z+=jiang[k];
}
c=1;
a=jiang[1];
for(i=2;i<=n;++i)
{
if(jiang[i]>a)
{
a=jiang[i];
c=i;
}
}
cout<<b[c]<<endl;
printf("%d\n",a);
printf("%d",z);
return 0;
} -
02014-07-10 15:38:53@
#include<iostream>
#include<cstdio>
#include<string>
using namespace std;
int qm[101],bj[101],gb[101],xb[101],lw[101];
int w[101]={0};
string s[101];
main()
{
int n,i,j,sum=0,max=0,best;
char a,b;
cin>>n;
for(i=1;i<=n;++i)
{
cin>>s[i]>>qm[i]>>bj[i];
cin>>a>>b;
gb[i]=(a=='Y')?1:0;
xb[i]=(b=='Y')?1:0;
cin>>lw[i];
if((qm[i]>80)&&(lw[i]))w[i]+=8000;
if((qm[i]>85)&&(bj[i]>80))w[i]+=4000;
if(qm[i]>90)w[i]+=2000;
if((qm[i]>85)&&(xb[i]))w[i]+=1000;
if((bj[i]>80)&&(gb[i]))w[i]+=850;
}
for(j=1;j<=n;++j)
{
sum+=w[j];
if(max<w[j])
{
max=w[j];
best=j;
}
}
cout<<s[best]<<endl<<max<<endl<<sum;
return 0;
} -
02014-07-10 12:36:31@
#include <cstdlib>
#include <iostream>
#include <math.h>
#include <time.h>
#include <string.h>using namespace std;
struct geren{
char name[32];
int qm;
int bj;
char gb;
char xb;
int lw;
int sum;
int sh;
};geren a[101];
int main(int argc,char *argv[])
{
int i,j,k,n,m;
cin>>n;
for(i=0;i<n;i++)
{
cin>>a[i].name>>a[i].qm>>a[i].bj>>a[i].gb>>a[i].xb>>a[i].lw;
a[i].sum=0;
a[i].sh=i;
}
k=0;
for(i=0;i<n;i++)
{
if(a[i].qm>80 && a[i].lw>0)
{
a[i].sum+=8000;
k+=8000;
}
if(a[i].qm>85 && a[i].bj>80)
{
a[i].sum+=4000;
k+=4000;
}
if(a[i].qm>90)
{
a[i].sum+=2000;
k+=2000;
}
if(a[i].qm>85 && a[i].xb=='Y')
{
a[i].sum+=1000;
k+=1000;
}
if(a[i].bj>80 && a[i].gb=='Y')
{
a[i].sum+=850;
k+=850;
}
}
for(i=0;i<n;i++)
{
for(j=i+1;j<n;j++)
{
if(a[j].sum>a[i].sum)
swap(a[i],a[j]);
}
}
j=a[0].sh;
m=0;
for(i=1;i<n;i++)
{
if(a[i].sum==a[0].sum)
{
if(a[i].sh<j)
{
j=a[i].sh;
m=i;
}
}
}
cout<<a[m].name<<endl;
cout<<a[m].sum<<endl;
cout<<k<<endl;
// system("pause");
return 0;
}