九度oj 題目1014 排名

2022-11-24 15:41:45 字數 2757 閱讀 5271

題目1014:排名

時間限制:1 秒

記憶體限制:32 兆

特殊判題:

提交:9361

解決:2820

題目描述:

今天的上機考試雖然有實時的ranklist,但上面的排名只是根據完成的題數排序,沒有考慮每題的分值,所以並不是最後的排名。給定錄取分數線,請你寫程式找出最後通過分數線的考生,並將他們的成績按降序列印。

輸入:

測試輸入包含若干場考試的資訊。每場考試資訊的第1行給出考生人數n ( 0 < n < 1000 )、考題數m ( 0 < m < = 10 )、分數線(正整數)g;第2行排序給出第1題至第m題的正整數分值;以下n行,每行給出一名考生的准考證號(長度不超過20的字串)、該生解決的題目總數m、以及這m道題的題號(題目號由1到m)。 

當讀入的考生人數為0時,輸入結束,該場考試不予處理。

輸出:

對每場考試,首先在第1行輸出不低於分數線的考生人數n,隨後n行按分數從高到低輸出上線考生的考號與分數,其間用1空格分隔。若有多名考生分數相同,則按他們考號的升序輸出。

樣例輸入:

4 5 25

10 10 12 13 15

cs004 3 5 1 3

cs003 5 2 4 1 3 5

cs002 2 1 2

cs001 3 2 3 5

1 2 40

10 30

cs001 1 2

2 3 20

10 10 10

cs000000000000000001 0

cs000000000000000002 2 1 2

0

樣例輸出:

3

cs003 60

cs001 37

cs004 3701

cs000000000000000002 20

分析:主要進行輸入資料的處理。用到c_str()函式。

語法: 

const char *c_str();

c_str()函式返回一個指向正規c字串的指標常量, 內容與本string串相同.

這是為了與c語言相容,在c語言中沒有string型別,故必須通過string類物件的成員函式c_str()把string 物件轉換成c中的字串樣式。

注意:一定要使用strcpy()函式 等來操作方法c_str()返回的指標

比如:最好不要這樣:

char* c;

string s="1234";

c = s.c_str(); //c最後指向的內容是垃圾,因為s物件被析構,其內容被處理,同時,編譯器也將報錯——將一個const char *賦與一個char *。

應該這樣用:

char c[20];

string s="1234";

strcpy(c,s.c_str());

這樣才不會出錯,c_str()返回的是一個臨時指標,不能對其進行操作

再舉個例子

c_str() 以 char* 形式傳回 string 內含字串

如果一個函式要求char*引數,可以使用c_str()方法:

string s = "hello world!";

printf("%s", s.c_str()); //輸出 "hello world!"

1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 

7using

namespace

std;

89 typedef struct

candidate;

1314

bool

cmp(candidate a, candidate b)

2021

intmain()

45if(sum >=g)51}

52sort(v.begin(), v.end(), cmp);

53 printf("

%d\n

", reach);

54for(i = 0; i < v.size(); i++)58}

59return0;

60 }

1 #include 2 #include 3 #include 4 #include 

5using

namespace

std;

67 typedef struct

candidate;

1112

bool

cmp(candidate a, candidate b)

1819

intmain()

41if(sum >=g)47}

48sort(v.begin(), v.end(), cmp);

49 cout << reach <50for(i = 0; i < v.size(); i++)53}

54return0;

55 }

總結:需要注意的是,vector容器是結構體型別的話,push_back()元素的方法

九度OJ 1177 查詢

讀入一組字串 待操作的 再讀入一個int n記錄記下來有幾條命令,總共有2中命令 1 翻轉 從下標為i的字元開始到i len 1之間的字串倒序 2 替換 命中如果第一位為1,用命令的第四位開始到最後的字串替換原讀入的字串下標 i 到 i len 1的字串。每次執行一條命令後新的字串代替舊的字串 即下...

九度OJ 1050 完數

求1 n內的完數,所謂的完數是這樣的數,它的所有因子相加等於它自身,比如6有3個因子1,2,3,1 2 3 6,那麼6是完數。即完數是等於其所有因子相加和的數。輸入 測試資料有多組,輸入n,n資料範圍不大。輸出 對於每組輸入,請輸出1 n內所有的完數。如有案例輸出有多個數字,用空格隔開,輸出最後不要...

九度OJ 1188 約瑟夫環

題目描述 n個人圍成一圈順序編號,從1號開始按1 2 3.順序報數,報p者退出圈外,其餘的人再從1 2 3開始報數,報p的人再退出圈外,以此類推。請按退出順序輸出每個退出人的原序號。輸入 包括一個整數n 1 n 3000 及一個整數p。輸出 測試資料可能有多組,對於每一組資料,按退出順序輸出每個退出...