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