Scommessa: errori tecnici nel codice

non riesco a far partire il codice, ci sono degli errori pratici che non riesco a togliere, qualcuno riuscirebbe ad aiutarmi?

#include <iostream>

#include <vector>

#include <utility>

#include <algorithm>

using namespace std;

int main(){

    freopen("input.txt", "r", stdin);

    freopen("output.txt", "w", stdout);

    int N;

    vector <int> C;

    vector <int> R;

    cin >> N;

    for (int i = 0; i < N; i++){

        int p;

        cin >> p;

        C.push_back(p);

        R.push_back(p);

    }

    int count=0;

    while (int R.size>1){

        if (int count>=1){

            C=R;

            for (int i=0;i<(C.size-1);i++){

                if ((C[i]+C[i+1])%2!=0){

                    R.erase(C[i]);

                    R.erase(C[i+1]);

                    i++;

                    }

                }

        }else{

            for (int i=0;i<(N-1);i++){

                if ((C[i]+C[i+1])%2!=0){

                    R.erase(C[i]);

                    R.erase(C[i+1]);

                    i++;

                }  

            }

        }

        count+=1;

    }

    cout << R;

}

size non è una proprietà è un metodo quindi non R.size ma R.size() non C.size ma C.size() ma c’è anche altro.
Non entro in merito alla logica del programma comunque la versione sotto compila:

#include <iostream>
#include <vector>
#include <utility>
#include <algorithm>

using namespace std;

int main() {

    freopen("input.txt", "r", stdin);
    freopen("output.txt", "w", stdout);
    int N;
    vector <int> C;
    vector <int> R;
    cin >> N;

    for (int i = 0; i < N; i++) {
        int p;
        cin >> p;
        C.push_back(p);
        R.push_back(p);
    }

    int count = 0;

    while ( R.size() > 1) {
        if ( count >= 1) {
            C = R;
            for (int i = 0; i < (C.size() - 1); i++) {
                if ((C[i] + C[i + 1]) % 2 != 0) {
                    R.erase(R.begin()+C[i]);
                    R.erase(R.begin() + C[i + 1]);
                    i++;
                }
            }
        }
        else {
            for (int i = 0; i < (N - 1); i++) {
                if ((C[i] + C[i + 1]) % 2 != 0) {
                    R.erase(R.begin() + C[i]);
                    R.erase(R.begin() + C[i + 1]);
                    i++;
                }
            }
        }
        count += 1;
    }

    //cout << R; //non si può stampare un intero vettore con una sola cout

}

grazie mille, a livello tecnico il codice riscritto così è corretto:

#include <iostream>

#include <vector>

#include <utility>

#include <algorithm>

using namespace std;

int main(){

    freopen("input1.txt", "r", stdin);

    freopen("output1.txt", "w", stdout);

    int N;

    vector <int> C;

    vector <int> R;

    cin >> N;

    for (int i = 0; i < N; i++){

        int p;

        cin >> p;

        C.push_back(p);

        R.push_back(p);

    }

    int count=0;

    while ( R.size()>1){

        if ( count>=1){

            C=R;

            for (int i=0;i<(C.size()-1);i++){

                if ((C[i]+C[i+1])%2!=0){

                    R.erase(R.begin()+C[i]);

                    R.erase(R.begin()+C[i+1]);

                    i++;

                    }

                }

        }else{

            for (int i=0;i<(N-1);i++){

                if ((C[i]+C[i+1])%2!=0){

                    R.erase(R.begin()+C[i]);

                    R.erase(R.begin()+C[i+1]);

                    i++;

                }  

            }

        }

        count+=1;

    }

    cout << R[0];

}

il problema ora è che non mi restituisce nulla in output. qualcuno ha risolto questo algoritmo e potrebbe indicarmi il codice corretto? grazie mille

Partendo dal fatto che quando posti un codice risulta molto utile una spiegazione di quello che stai cercando di fare, ma comunque, da quello che vedo tu stai cercando di simulare delle partite, ma tale approccio non è il più intuitivo (vedo inoltre che stampi solo un numero quindi sicuramente l’output non sarà corretto).
In ogni caso, invece di simulare una partita prova a capire se, per ogni posizione i la carta C_i potrà rimanere in tavola, cerca quindi (a livello logico ancora prima di scrivere il codice) di trovare un criterio che permette di capire se C_i potrebbe rimanere in tavola oppure no.