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
}
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.