제출 #1300824

#제출 시각아이디문제언어결과실행 시간메모리
1300824ar_tkinterACM (COCI19_acm)C++20
50 / 50
4 ms572 KiB
#include <bits/stdc++.h>
using namespace std;
#define ll long long
unordered_map<string,pair<int,int>> mp;


int main(){
    
    int n,m;
    cin>>n>>m;
    int flag=0;
    n++;
    string team="NijeZivotJedanACM";
    while(n--){
      string k;
      cin>>k;
      int tmp=m;
      if(flag==0 && k==team) {flag=1;while(tmp--){string ex;cin>>ex;}continue;}
      
      int solved=0,penalty=0;
      
      while(tmp--){
        string que;
        cin>>que;
        if(que.size()==1) continue;
        
        if(que[0]=='-') continue;
        
        if(que[0]=='+' || que[0]=='?'){
          solved++;
          penalty+=(que[1]-'1')*20*60;
          //+2/20:14:12
          int hour=(que[3]-'0')*36000+(que[4]-'0')*3600;
          int minute=(que[6]-'0')*600+(que[7]-'0')*60;
          int second=(que[9]-'0')*10+(que[10]-'0');
          penalty+=(minute+hour+second);
        }
      }
      mp[k]={solved,penalty};
      
    }
    vector<pair<string,pair<int,int>>> v(mp.begin(),mp.end());
    sort(v.begin(),v.end(),[](const auto &A,const auto &B){
      if(A.second.first!=B.second.first){
        return A.second.first>B.second.first;
      }
      if(A.second.second!=B.second.second){
        return A.second.second<B.second.second;
      }
      return A.first<B.first;
      
    });
    int cnt=1;
    for(auto x :v){
      if(x.first==team) break;
      cnt++;
    }
    cout<<cnt;
}
#Verdict Execution timeMemoryGrader output
Fetching results...