穷举算法问题,求助大佬

计算导论与程序设计某次上机考试共出了4道题,其中每名同学都至少做对了一道题。根据已知条件求做对了2、3、4题的可能的人数。。
输入格式:
只有一行,为两个用空格分隔的正整数m和n,分别代表参加考试的总人数和总的解题数。
输出格式:
有若干行,每一行为一组解,格式均为用空格分隔的三个整数,依次代表解2题的人数,解3题的人数和解4题的人数。多组解的输出顺序按解2题人数由小到大排序,如果解2题的人数相同则按解3题的人数由小到大排序。所有测试数据保证可以用int存储。
输入样例:
15 20
输出样例:
0 1 1
1 2 0
2 0 1
3 1 0
5 0 0

#include<stdio.h>
int main() {
    int m,n,i,j,k,s;
    scanf("%d %d",&m,&n);
    s=n-m; 
    for(i=0;i<=s;i++){//做对2题的人有i个 
        for(j=0;j<=s/2;j++){//做对3题的人有j个 
            for(k=0;k<=s/3;k++){//做对3题的人有k个 
                if(i+2*j+3*k==s){
                    printf("%d %d %d\n",i,j,k);
                }    
            }    
        }
    }
    return 0;
}

觉得有用的话采纳一下哈

万分感谢大佬!