Problem p02773 (python)

Fixed submission:
n = int(input())
dic = {}
for i in range(n):
    s = input()
    try:
        dic[s] += 1
    except:
        dic[s] = 1
high=max(dic.values())
val= sorted(dic.items())
for i in val:
    if(i[1]==high):
        print(i[0])

Buggy submission (verdict: Runtime Error):
dict={}
output=[]

iteration=int(input())
for _ in range(iteration):
    item=input()
    
    if dict.get(item) is None:
        dict[item]=0 
    dict[item]+=1 
max_val=max(dict.values())
for i in range(iteration):
    max_key=max(dict,key=dict.get)
    if(max_val!=dict[max_key]):
        break
    output.append(max_key)
    
    del dict[max_key]
output.sort()
print('\n'.join(output))

Buggy submission (verdict: Runtime Error):
N=input()
n=int(N)

p=[]
for i in range(n):
    p.append(input())

ha = {}

for i in p :
    if (i not in ha.keys()) :
        ha[i] = 1
    else :
        ha[i] += 1

res = ha.items()

res = sorted(ha.items(), key = lambda x : x[1] , reverse = True )

i = 1
k = res[0][1]

while (i < len(res) and res[i][1] == k) :
    i += 1

res = res[ : i]

res.sorted()
for i in res :
    print (i[1])

Buggy submission (verdict: Runtime Error):
import math


n = int(input())
candidates = {}


for _ in range(n):
    inp = input()
    if inp in candidates:
        candidates[inp] += 1
    else:
        candidates[inp] = 1


max_votes = -math.inf
for candidate, votes in candidates.items():
    if votes >= max_votes:
        max_votes = votes

for candidate, votes in sorted(candidates.items()):
    if votes == max_votes:
        print(candidate)

Buggy submission (verdict: Runtime Error):
#include <bits/stdc++.h>
using namespace std;

#define all(v)			((v).begin()), ((v).end())
#define SIZE(v)			((int)((v).size()))
#define LOG(x)			log((double)x)
#define TOLOWER(x)          transform(all(x),x.begin(),::tolower)
#define TOUPPER(x)          transform(all(x),x.begin(),::toupper)
#define ROUND(x,m)			(round((double)x/m)*m)
#define DIGITS(x)			(floor(log10((double)x))+1)
#define READSTR(x)			getline(cin,x)
#define sort_g(a,b)              sort(a, b, greater<int>());
#define IOS() ios_base::sync_with_stdio(0);cin.tie(NULL);
#define REP(i, n) for (int i = 0; i < n; ++i)
#define FILE_INPUT() 	freopen( "input.txt", "r", stdin)
#define FILE_OUTPUT()   freopen( "output.txt", "w", stdout)
#define PI 3.14159265


typedef long long ll;

bool myCmp(pair<int,string> &p1 , pair<int,string>&p2)
{
    if(p1.first == p2.first)
        return p1.second<p2.second;
    else return p1.first > p2.first;
}
unsigned long long
choose(unsigned long long n, unsigned long long k) {
    if (k > n) {
        return 0;
    }
    unsigned long long r = 1;
    for (unsigned long long d = 1; d <= k; ++d) {
        r *= n--;
        r /= d;
    }
    return r;
}
int toInt(string str)
{
    int num;
    std::istringstream iss(str); //put string in input stream
    iss >> num; return num; //read from stream as integer
}
ll  OO = 10e9;
const int MAXN = 2*10e5 +1;

map<string,int> m;
vector<pair<int,string>> vsi;
int main() {
    IOS();
    int N;
    cin>>N;
    string s;
    REP(i,N)
    {
        cin>>s;
        m[s]++;
    }
    vsi.resize(m.size());
    int i = 0 ;
    for(auto v : m)
    {
        vsi[i] = make_pair(v.second,v.first);
        ++i;
    }
    sort(vsi.begin(),vsi.end(),myCmp);
    int score = vsi[0].first;
    for(int k = 0; k<vsi.size();++k)
    {
        if(vsi[k].first == score)
            cout<<vsi[k].second<<endl;
        else
            break;
    }
    return 0;
}