国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

2016級(jí)ACM寒假訓(xùn)練(四)

2019-11-08 20:20:57
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

老和尚的導(dǎo)員

PRoblem:A

Time Limit:1000ms

Memory Limit:65536K

Description

等小和尚回來(lái)后,老和尚居然沒(méi)有睡覺(jué)。老和尚表示他的導(dǎo)員的Excel表格壞掉了(老和尚居然有導(dǎo)員?好吧……據(jù)說(shuō)是方丈),而且老和尚的導(dǎo)員要老和尚將寺中所有和尚的期末考試成績(jī)按降序排列來(lái)發(fā)獎(jiǎng)學(xué)金(和尚還有獎(jiǎng)學(xué)金?)不用多說(shuō),為了繼續(xù)睡午覺(jué),這個(gè)任務(wù)理所當(dāng)然的落在了小和尚身上。所有……你繼續(xù)幫忙吧。

Input

寺中主要考試科目有C語(yǔ)言,線(xiàn)性代數(shù),高等數(shù)學(xué)和英語(yǔ)四個(gè)科目(怎么當(dāng)和尚都這么累),輸入的第一行是和尚的人數(shù)N(N<=100),第二行至第N+1行分別為C語(yǔ)言a[i],線(xiàn)性代數(shù)b[i],高等數(shù)學(xué)c[i]和英語(yǔ)的成績(jī)d[i](0 <= a[i],b[i],c[i],d[i] <= 100)。

Output

現(xiàn)需要你將和尚們的成績(jī)以總成績(jī)降序排列,輸出數(shù)據(jù)的每行有兩個(gè)數(shù)字,第一個(gè)數(shù)字為和尚的編號(hào)(輸入時(shí)的第一個(gè)和尚成績(jī)即為和尚1,第二個(gè)為和尚2),第二個(gè)數(shù)字為和尚的總成績(jī)(如果總成績(jī)相同,則按C語(yǔ)言的成績(jī)排列,如在相同,則按線(xiàn)性代數(shù)輸出編號(hào),以此類(lèi)推。)

Sample Input

598 50 27 6558 52 24 1698 96 90 8931 65 98 7865 67 66 90

Sample Output

3 3735 2884 2721 2402 150
#include <iostream>#include <stdio.h>#include <string.h>#include <algorithm>using namespace std;struct data{    int c;    int x;    int g;    int y;    int z;    int number;}num[105];bool cmp(data a,data b){    if(a.z==b.z)        return a.y>b.y;        return a.z>b.z;}int main(){    int n;    while(scanf("%d",&n)!=EOF)    {        int i,j;        for(i=0;i<n;i++)        {            scanf("%d%d%d%d",&num[i].c,&num[i].x,&num[i].g,&num[i].y);            num[i].z=num[i].c+num[i].x+num[i].g+num[i].y;            num[i].number=i;        }        sort(num,num+105,cmp);        for(j=0;j<n;j++)        {            printf("%d %d/n",num[j].number+1,num[j].z);        }    }    return 0;}

健忘的老和尚

Problem:B

Time Limit:1000ms

Memory Limit:65536K

Description

當(dāng)小和尚排完名單后,老和尚突然一拍腦袋:“導(dǎo)員把每個(gè)人的人名都給我了,可我忘記告訴你了。”好吧……我們可憐的小和尚看來(lái)要費(fèi)二遍事了(好像之前的任務(wù)都是你幫他做的,好吧,你真可憐)

Input

輸入數(shù)據(jù)為多組,輸入的第一行為和尚的人數(shù)N,可以得到獎(jiǎng)學(xué)金的人數(shù)M,和需要補(bǔ)考的人數(shù)O(在這里可以滿(mǎn)足M+O&lt;=N,即得到獎(jiǎng)學(xué)金的和尚一定不用參加補(bǔ)考)。之后的N行每行都有一個(gè)字符串(即為和尚的名字,長(zhǎng)度小于100)和尚考試的總分a[i](0 &lt;= a[i] &lt;= 1000)。

Output

前M行,每行是獲得獎(jiǎng)學(xué)金的小和尚的名字;后O行,每行是補(bǔ)考的小和尚的名字;由于老和尚覺(jué)得很對(duì)不起小和尚,所以他決定這次簡(jiǎn)單些,所以無(wú)論是獎(jiǎng)勵(lì)還是懲罰都按照總成績(jī)從低到高輸出和尚的名字即可。

Sample Input

5 1 2a 192 aa 212ab 351bab 128bbaa 654

Sample Output

bbaababa
#include <stdio.h>#include <algorithm>using namespace std; struct in{    char name[1000];    int grade;    };bool cmp1(in a,in b){    return a.grade>b.grade;}int main(){    int n,m,o;    int a;    while(scanf("%d %d %d",&n,&m,&o)!=EOF)    {        struct in stu[101];        for(a=0;a<n;a++)        {            scanf("%s",&stu[a].name);            scanf("%d",&stu[a].grade);        }        sort(stu,stu+n,cmp1);        for(a=m-1;a>=0;a--)            printf("%s/n",stu[a].name);        for(a=n-1;a>n-o-1;a--)            printf("%s/n",stu[a].name);    }    return 0;}

相約摩洛哥

Problem:C

Time Limit:1000ms

Memory Limit:65536K

Description

2015年5月ACM全球總決賽在摩洛哥卡薩布蘭卡舉行,到時(shí)會(huì)有來(lái)自世界各地的acm大牛齊聚摩洛哥。  作為本次大賽的舉辦方負(fù)責(zé)人阿焜和阿祥被分配給了一個(gè)重要的任務(wù),就是在比賽中統(tǒng)計(jì)大家的排名。acm大賽排名規(guī)則(摘自百度百科):    最后的獲勝者為正確解答題目最多且總用時(shí)最少的隊(duì)伍。每道試題用時(shí)將從競(jìng)賽開(kāi)始到試題解答被判定為正確為止,其間每一次提交運(yùn)行結(jié)果被判錯(cuò)誤的話(huà)將被加罰20分鐘時(shí)間,未正確解答的試題不記時(shí)。例如:A、B兩隊(duì)都正確完成兩道題目,其中A隊(duì)提交這兩題的時(shí)間分別是比賽開(kāi)始后1:00和2:45,B隊(duì)為1:20和2:00,但B隊(duì)有一題提交了2次。這樣A隊(duì)的總用時(shí)為1:00+2:45=3:45而B(niǎo)隊(duì)為1:20+2:00+0:20=3:40,所以B隊(duì)以總用時(shí)少而獲勝。請(qǐng)你幫他倆完成這項(xiàng)任務(wù)吧!(保證沒(méi)有成績(jī)完全相同兩支隊(duì)伍)

Input

多組輸入,每組一個(gè)正整數(shù)n(1&lt;=n&lt;=100000),代表有n個(gè)隊(duì)伍參賽。接下來(lái)的n行,每行分別有一個(gè)字符串(只包含小寫(xiě)英文字母)作為隊(duì)伍名,長(zhǎng)度1&lt;=len&lt;=10;ABC三道題的ac時(shí)間(以分鐘為單位),時(shí)間為-1表示該題沒(méi)有ac。接下來(lái)又有n行,表示每道題的提交次數(shù),用3個(gè)正整數(shù)表示。

Output

輸出排行榜。n行,每行一個(gè)隊(duì)伍的名字、解題數(shù)和總用時(shí)。

Sample Input

3	team 30 10 20behappy 20 20 90newbee 15 16 171 1 11 1 101 1 1

Sample Output

newbee 3 48team 3 60behappy 3 310
#include <iostream>#include <stdio.h>#include <string.h>#include <algorithm>using namespace std;struct data{    char name[15];    int x;    int y;    int z;    int xx;    int yy;    int zz;    int ti;    int zong;}num[105];bool cmp(data a,data b){    if(a.ti==b.ti)        return a.zong<b.zong;        return a.ti>b.ti;}int main(){    int n;    while(scanf("%d",&n)!=EOF)    {        int i;        for(i=0;i<n;i++)        {            scanf("%s",num[i].name);            scanf("%d%d%d",&num[i].x,&num[i].y,&num[i].z);        }        for(i=0;i<n;i++)        {            scanf("%d%d%d",&num[i].xx,&num[i].yy,&num[i].zz);        }        for(i=0;i<n;i++)        {            num[i].zong=0;            num[i].ti=0;        }        for(i=0;i<n;i++)        {            if(num[i].x!=-1)            {                num[i].zong+=num[i].x+(num[i].xx-1)*20;                num[i].ti++;            }            if(num[i].y!=-1)            {                num[i].zong+=num[i].y+(num[i].yy-1)*20;                num[i].ti++;            }            if(num[i].z!=-1)            {                num[i].zong+=num[i].z+(num[i].zz-1)*20;                num[i].ti++;            }        }        sort(num,num+n,cmp);        for(i=0;i<n;i++)        {            printf("%s %d %d/n",num[i].name,num[i].ti,num[i].zong);        }    }    return 0;}

戲說(shuō)三國(guó)(注意審題!!)

Problem:D

Time Limit:1000ms

Memory Limit:65536K

Description

   東漢末年,宦官當(dāng)權(quán),民不聊生。靈帝中平元年,張角兄弟發(fā)動(dòng)黃巾起義,官軍聞風(fēng)喪膽。為抵抗黃巾,幽州太守劉焉出榜招兵。榜文前,劉備、關(guān)羽、張飛三兄弟萍水相逢。三人都有為國(guó)效力之心,于是桃園結(jié)為異姓兄弟,開(kāi)始了一段三國(guó)浪漫傳奇……  如果我問(wèn)你三國(guó)中誰(shuí)最聰明你一定會(huì)說(shuō)是諸葛亮,我要問(wèn)你誰(shuí)武功最高,保不準(zhǔn)你就要說(shuō)關(guān)羽。是啊,我們的劉備對(duì)于優(yōu)秀的手下向來(lái)十分滿(mǎn)意。可是有一天,劉備在無(wú)意間在朋友圈里看到了梁山的宋江正在進(jìn)行英雄排座次,最可氣的是這條動(dòng)態(tài)已經(jīng)被轉(zhuǎn)發(fā)評(píng)論了無(wú)數(shù)次了……這一下可氣壞了劉備,他決定也來(lái)一次,蜀中文武百官大排名。為了公平起見(jiàn),諸葛亮幫他制定一條評(píng)分標(biāo)準(zhǔn):每個(gè)官員有一個(gè)智育、德育、武育三個(gè)分?jǐn)?shù),分別以b%,a%,c%的比率計(jì)入加權(quán)總分,按總分降序排列,總分相同按智育折合后的分?jǐn)?shù)降序,智育相同按德育,依次類(lèi)推最終決定排名。(保證沒(méi)有排名一樣的兩個(gè)人)

Input

輸入第一行t(1&lt;=t&lt;=1000)表示輸入的組數(shù)。接下來(lái)每組第一行1個(gè)整數(shù)n(1&lt;=n&lt;=100000)三個(gè)實(shí)數(shù)a,b,c(a+b+c=100)接下來(lái)n行每行包括英雄的名字,字符串s(1&lt;=len&lt;=20,全為小寫(xiě)字母) 智育、德育、武育的分?jǐn)?shù)(整數(shù))。(1~100)

Output

每組第一行輸出是第幾組輸出Case #t:接下來(lái)輸出n行每行包括英雄的名字,總分,智育、德育、武育折合后的分?jǐn)?shù)(保留四位小數(shù))。

Sample Input

13 20.00  20.00  60.00zhugeliang 90 80 0zhangfei 0 0 100guanyu 10 100 100

Sample Output

Case #1:guanyu 82.0000 2.0000 20.0000 60.0000zhangfei 60.0000 0.0000 0.0000 60.0000zhugeliang 34.0000 18.0000 16.0000 0.0000
#include <stdio.h>#include <stdlib.h>#include <algorithm>using namespace std;struct hs{char name[25];int q,w,e;float QQ,ww,ee,s;}h[100010];bool pp(hs,hs);int main(){    int n,i,j,t,r;    float a,b,c;    scanf("%d",&t);    for (r=1;r<=t;r++)    {        scanf("%d%f%f%f",&n,&a,&b,&c);        a/=100;        b/=100;        c/=100;        for (i=0;i<n;i++)        {            scanf("%s",h[i].name);            scanf("%d%d%d",&h[i].q,&h[i].w,&h[i].e);            h[i].qq=b*h[i].q;            h[i].ww=a*h[i].w;            h[i].ee=c*h[i].e;            h[i].s=h[i].qq+h[i].ww+h[i].ee;        }        sort(h,h+n,pp);        printf("Case #%d:/n",r);        for (i=0;i<n;i++)        {            printf("%s %.4f %.4f %.4f %.4f/n",h[i].name,h[i].s,h[i].qq,h[i].ww,h[i].ee);        }    }    return 0;}bool pp(hs q,hs w){    return q.s>w.s;}

排序

Problem:E

Time Limit:1000ms

Memory Limit:65536K

Description

輸入一行數(shù)字,如果我們把這行數(shù)字中的‘5’都看成空格,那么就得到一行用空格分割的若干非負(fù)整數(shù)(可能有些整數(shù)以‘0’開(kāi)頭,這些頭部的‘0’應(yīng)該被忽略掉,除非這個(gè)整數(shù)就是由若干個(gè)‘0’組成的,這時(shí)這個(gè)整數(shù)就是0)。	你的任務(wù)是:對(duì)這些分割得到的數(shù)字,依從小到大的順序排序輸出

Input

輸入包含多組測(cè)試用例,每組輸入數(shù)據(jù)只有一行數(shù)字(數(shù)字之間沒(méi)有空格),這行數(shù)字的長(zhǎng)度不大于1000。  	輸入數(shù)據(jù)保證:分割得到的非負(fù)整數(shù)長(zhǎng)度不大于100;輸入數(shù)據(jù)不可能全由‘5’組成。

Output

對(duì)于每個(gè)測(cè)試用例,輸出分割得到的整數(shù)排序的結(jié)果,相鄰的兩個(gè)整數(shù)之間用一個(gè)空格分開(kāi),每組輸出占一行。

Sample Input

0051231232050775

Sample Output

0 77 12312320
#include <stdio.h>#include <string.h>#include <algorithm>using namespace std;struct in{    char s[110];}nt[1010];bool cmp(in a,in b){    int alen,blen;    alen=strlen(a.s);    blen=strlen(b.s);    if(alen<blen)        return true;    else if(alen>blen)        return false;    else    {        if(strcmp(a.s,b.s)<0)            return true;        else            return false;    }}int main(){    int len,tlen,k;    int i,d;    char s[1010],st[110];    memset(st,0,sizeof(st));    while(scanf("%s",&s)!=EOF)    {        len=strlen(s);        k=0;        tlen=0;        for(i=0;i<=len;i++)            if(i==len||s[i]=='5')        {            if(tlen==0)                continue;            for(d=0;d<tlen-1;d++)                if(st[d]!='0')                break;            strcpy(nt[k++].s,st+d);            memset(st,0,sizeof(st));            tlen=0;        }        else        {            st[tlen++]=s[i];        }        sort(nt,nt+k,cmp);        printf("%s",nt[0].s);        for(i=1;i<k;i++)            printf(" %s",nt[i].s);        printf("/n");    }    return 0;}


發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 霍林郭勒市| 新乡市| 双柏县| 泽州县| 武义县| 新田县| 邵阳市| 福建省| 福鼎市| 望都县| 开化县| 广德县| 广安市| 静乐县| 嘉祥县| 饶平县| 炉霍县| 彩票| 唐山市| 若尔盖县| 射洪县| 莲花县| 突泉县| 凤庆县| 阿拉善右旗| 洛阳市| 安吉县| 双江| 西华县| 广丰县| 六枝特区| 佳木斯市| 象州县| 隆尧县| 阿拉善盟| 阿拉善右旗| 山阴县| 平罗县| 新乡市| 佛教| 凤台县|