Otkucao sam resenje za trik za koje sam poprilicno siguran da radi, medjutim , kada ga posaljem na testiranje javlja sistemsku gresku ili memorijsko prekoracenje. Ovo drugo sigurno nije u pitanju, jer deklarisem samo jedan niz od 50 elemenata. Ima li neko ideju o cemu se radi ?
#include<stdio.h>
int main()
{
int N[54]; int k, n;
for(int i = 1; i <= 53; i++) N[i] = 0;
char ch1,ch2,ne;
scanf("%d%d%c",&n,&k,&ne);
for(int i = 1; i <= n; i++)
{
scanf("%c%c%c",&ch1,&ch2,&ne);
int k1; if(ne=='0') { k1 = 10; scanf("%c",&ne); }
else
if(ch2>'0'&&ch2<='9')
{ k1 = ch2 - (int)'0'; }
else
{
if(ch2=='J') k1 = 11;
else if(ch2=='Q') k1 = 12;
else if(ch2=='K') k1 = 13;
else if(ch2=='A') k1 = 14;
}
int p;
if(ch1=='S') p = 0;
else if(ch1=='L') p = 13;
else if(ch1=='K') p = 26;
else if(ch1=='D') p = 39;
p+=k1-1; N[p]=N[p]+1;
}
int trazeni = 0;
for(int i = 1; i <= 52; i++)
{
//printf("%d%c%d\n",i,':',N[i]);
k-=N[i];
if(k<=0) { trazeni = i; break; }
}
if(trazeni<=13)
{
printf("%c",'S');
}
else if(trazeni<=26)
{
trazeni-=13;
printf("%c",'L');
}
else if(trazeni<= 39)
{
trazeni-=26;
printf("%c",'K');
}
else
{
trazeni-=39;
printf("%c",'D');
}
if(trazeni<=9) printf("%d",trazeni+1);
else if(trazeni==10) printf("%c",'J');
else if(trazeni==11) printf("%c",'Q');
else if(trazeni==12) printf("%c",'K');
else if(trazeni==13) printf("%c",'A');
getchar(); getchar();
}