for(a=1;a<=N;a++){
for(b=a;b<=N;b++){
for(c=b;c<=N;c++){
の時点でa <= b <= cを満たしてるはずなのに更に仮定するの?