22 7每日一題acm

2021-08-21 15:46:52 字數 1919 閱讀 2000

幾周前,一家著名軟體公司公升級了即時通訊軟體。使用者組發布了乙個排名系統。乙個小組的每個成員都有乙個位於他的暱稱附近的等級。級別顯示組中成員的活動程度。

每個成員都有乙個基於分數的行為。通過這種方法確定水平:

水平百分比

此級別的成員數目

lv1/

所有得分均為零的成員

lv2/

所有不能達到3級以上但具有正分數的成員

lv330%

⌊(具有正分數的成員的數量) * 30%⌋

lv420%

⌊(具有正分數的成員的數量) * 20%⌋

lv57%

⌊(具有正分數的成員的數量) * 7%⌋

lv63%

⌊(具有正分數的成員的數量) * 3%⌋

[x]是小於或等於 x的最大整數。

得分越高的會員越高。如果兩個成員有相同的分數,那麼加入組的較早的成員將得到更高的水平。如果仍然存在關聯,較小id的使用者將得到更高的級別。

請編寫乙個程式來計算組中每個成員的級別。

輸入:有多個測試用例。輸入的第一行是指示測試用例個數的整數t。對於每個測試用例:

第一行包含乙個整數n(1<n<=2000),表示乙個組中成員的數目。

下n行,每行包含三個部分(由乙個空間分隔):

第i個成員ai的id(0 <=ai <=1000000000)。每個成員的id是唯一的。

第i個成員加入該集團的日期,格式為yyyy/mm/dd。日期將在[ 1900 / 01 / 01, 2014 / 04 / 06 ]的範圍內。

第i個成員的分數si(0<si=9999)。

輸出:對於每個測試用例,輸出n行。每行包含乙個字串,表示第i個成員的級別。

樣本輸入:

1

5123456 2011/03/11 308

123457 2011/03/12 308

333333 2012/03/18 4

555555 2014/02/11 0

278999 2011/03/18 308

樣本輸出:

lv3

lv2lv2

lv1lv2

**如下:

#include #include #include #include using namespace std;

const int max_n = 2000 + 100;

int n, t, cnt;

struct rank

;int y, m, d, id, score;

rank r[max_n];

int a[max_n];

int cmp(int m, int n)

}int lv[6];

int main()

sort(a, a + n, cmp);

lv[6] = (int)(cnt * 0.03);

lv[5] = (int)(cnt * 0.07);

lv[4] = (int)(cnt * 0.2);

lv[3] = (int)(cnt * 0.3);

lv[2] = cnt - lv[6] - lv[5] - lv[4] - lv[3];

lv[1] = n - cnt;

for(int i = 0; i < n; i++)

else if(lv[5] != 0)

else if(lv[4] != 0)

else if(lv[3] != 0)

else if(lv[2] != 0)

else

r[a[i]].lv = "lv1";

}for(int i = 0; i < n; i++)

cout << r[i].lv << endl;

}return 0;

}

每日一題力扣227

給你乙個字串表示式s,請你實現乙個基本計算器來計算並返回它的值。整數除法僅保留整數部分。class solution defcalculate self,s stack pre op num 0 for i,each in enumerate s ifeach.isdigit num 10 num ...

23 7每日一題acm

司令部的將軍們打算在n m的網格地圖上部署他們的炮兵部隊。乙個n m的地圖由n行m列組成,地圖的每一格可能是山地 用 h 表示 也可能是平原 用 p 表示 如下圖。在每一格平原地形上最多可以布置一支炮兵部隊 山地上不能夠部署炮兵部隊 一支炮兵部隊在地圖上的攻擊範圍如圖中黑色區域所示 如果在地圖中的灰...

每日一題 1

題目詳情 peter喜歡玩數字遊戲,但數獨這樣的遊戲對他來說太簡單了,於是他準備玩乙個難的遊戲。遊戲規則是在乙個n n的 裡填數,規則 對於每個輸入的n,從左上角開始,總是以對角線為起點,先橫著填,再豎著填。這裡給了一些樣例,請在樣例中找到規律並把這個n n的 列印出來吧。輸入描述 多組測試資料 資...