CSES - Datatähti 2025 loppu - Results
Submission details
Task:Tulostaulu
Sender:maweiyin24562
Submission time:2025-01-18 13:30:03 +0200
Language:C++ (C++11)
Status:COMPILE ERROR

Compiler report

input/code.cpp: In function 'bool dictord(std::string, std::string)':
input/code.cpp:15:18: warning: comparison of integer expressions of different signedness: 'int' and 'const long unsigned int' [-Wsign-compare]
   15 |     for(int i=0;i<min(s1.size(),s2.size());i++){
      |                 ~^~~~~~~~~~~~~~~~~~~~~~~~~
input/code.cpp: In function 'bool cmp(const Grade&, const Grade&)':
input/code.cpp:27:43: error: 'timestamp' was not declared in this scope
   27 |     return aa>bb||aa==bb&&(aa!=0&&bb!=0)&&timestamp[id[a.name]][aa]<timestamp[id[b.name]][bb]||aa==0&&bb==0&&a.name<b.name;
      |                                           ^~~~~~~~~
input/code.cpp:27:53: error: 'id' was not declared in this scope
   27 |     return aa>bb||aa==bb&&(aa!=0&&bb!=0)&&timestamp[id[a.name]][aa]<timestamp[id[b.name]][bb]||aa==0&&bb==0&&a.name<b.name;
      |                                                     ^~

Code

#include <bits/stdc++.h>

#define ll long long
#define lbit(u) (u&(-u))


using namespace std;
const int N=100009;

struct Grade{
    string name;
    int g[11];
};
bool dictord(string s1,string s2){
    for(int i=0;i<min(s1.size(),s2.size());i++){
        if(s1[i]<s2[i])return true;
        if(s1[i]>s2[i])return false;
    }
    return s1.size()<s2.size();
}
bool cmp(const Grade&a,const Grade&b){
    int aa=0,bb=0;
    for(int i=0;i<10;i++){
        aa+=a.g[i];
        bb+=b.g[i];
    }
    return aa>bb||aa==bb&&(aa!=0&&bb!=0)&&timestamp[id[a.name]][aa]<timestamp[id[b.name]][bb]||aa==0&&bb==0&&a.name<b.name;
}
map<string,int>id;
int timestamp[109][10009];
Grade gd[109];

int n,m,k;

int main(){
    cin>>n>>m>>k;
    for(int i=1;i<=n;i++){
        string s;
        cin>>s;
        id[s]=i;
        gd[i].name=s;
    }
    for(int i=1;i<=m;i++){
        string s;
        char c;
        int sc,sum=0;
        cin>>s>>c>>sc;
        gd[id[s]].g[c-'A']=max(sc,gd[id[s]].g[c-'A']);
        for(int j=0;j<10;j++)sum+=gd[id[s]].g[j];
        timestamp[id[s]][sum]=i;
    }
    sort(gd+1,gd+1+n,cmp);
    for(int i=1;i<=n;i++){
        int sum=0;
        for(int j=0;j<10;j++)sum+=gd[i].g[j];
        cout<<gd[i].name<<" "<<sum<<endl;
    }
    return 0;
}

/*

*/