Problema Wordle

Buongiorno a tutti, ho un problema con questo codice:
Fa quello che richiede l’esercizio però mi da 0/100. Gli esempi funzionano anche.

#include <iostream>

using namespace std;

int main()
{
	long long int N=0,S=1, M=26;
	cin>>N;
	char L[N];
	for(long long int x=0;x<N;x++)
	{
		cin>>L[N];
		if(L[N]=='_')
			S=S*(26-x);
	}
	cout<<S<<endl;
}

Gli esempi ti funzionano solamente perché gli _ compaiono come suffisso dei caratteri in input. Per esempio se provi con l’input 3 _ _ A il tuo codice stampa 650, ma la risposta corretta rimane 600.

Ok ho sistemato, dovevo implementare un po’ di cose, come due conteggi, uno per vedere quante parola ci sono, una per vedere quanti trattini bassi, ecc.
Questo è il codice:

#include <iostream>

using namespace std;

int main()
{
	long long int N=0,S=0,u=1,conta=0,M=26,conta2=0;
	cin>>N;
	char L[N];
	for(long long int x=0;x<N;x++)
		cin>>L[x];	
	for(long long int x=0;x<N;x++)
	{
		if(L[x]!='_')
			conta++;
	}
	M=M-conta;
	for(long long int x=0;x<N;x++)
	{
		if(L[x]=='_')
		{
			S=S+u;
			S=S*(M-conta2);
			u=0;
			conta2++;
		}
	}
	cout<<S<<endl;
}

volendo potevi semplifcare il problema unendo i primi 2 cicli
for(int i=0;i<N;i++){ cin>>L[i[; if(L[i]=="_"){ c++; } }

Ma in generale non serviva tuttte queste variabili e processi,io ho ragionato con un contatore e un moltiplicatore, e poi le 2 variabili richieste dal problema ed esce fuori una cosa del genere

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

int main(){
	int N,c=0,temp=1;
	cin>>N;
	string L;
	for(int i=0;i<N;i++){
		cin>>L;
		if(L=="_"){
			c++;
		}
	}
	for(int i = 0 ;i < c; i++ , N++){
		temp*=26-N+c;
	}
	cout<<temp;
	return 0;
}

(la stringa doveva essere un array solo nel caso in cui le lettere e i trattini non venivano spaziati,per ilr esto poteva essere usata una stringa o un carattere di singola dimensione)