Macchina virtuale e beta release

Buonasera, in aggiornamento macchina virtuale il compilatore mi dà questo errore che non riesco a capire:

/usr/bin/ld: /tmp/cc4SXJSj.o: in function `main':
vm.cpp:(.text.startup+0x0): multiple definition of `main'; /tmp/ccF0FuDl.o:grader.cpp:(.text.startup+0x0): first defined here
collect2: error: ld returned 1 exit status

Questo è il programma che ho scritto:

#include <bits/stdc++.h>
#include <fstream>
#include <vector>
using namespace std;

long long aggiorna(int N, vector<int> A, vector<int> B){
    long long s=0;
    bool again=1;
    for(int j=0; j<N-1 && again==1; j++){
        again=0;
        for(int i=0; i<N-1; i++){
            if(A[i]+B[i]<=A[i+1]){
                s++;
                A[i]+=B[i];
                again=1;
            }
        }
    }
return s;
}
int main(){

ifstream in("input.txt");
ofstream out("output.txt");

int N = 0;
in>>N;
vector <int> A(N);
for(int i=0; i<N; i++){
    in>>A[i];
}
vector <int> B(N-1);
for(int j=0; j<N-1; j++){
    in>>B[j];
}
out<<aggiorna(N, A, B);
return 0;
}

Poi avrei anche una dubbio per quanto riguarda beta release, perchè non capisco quali casi dovrei considerare per poter affermare che ci sono persone che non rispettano la regola e mi viene 0/100.
Questo è il mio programma:

#include <fstream>
#include <vector>
#include <cmath>
#include <algorithm>
#include <set>

using namespace std;

int main(){
    ifstream in("input.txt");
    ofstream out("output.txt");
    
    //variabili
    long long N = 0;in>>N;
    long long t=0;
    long long maxnum=0;
    long long media=0;
    multiset <long long> login;
    for(int i=0; i<N; i++){
        in>>t;
        login.insert(t);
        maxnum=max(maxnum, t);
        
    }
    if(login.count(maxnum)>1 && login.count(maxnum)<N){
        out<<"YES";
    }else{
        out<<"NO";
    }
}

Grazie mille, fino ad adesso non avevo idea di cosa fossero i grader