poj 1833 同样是stl next_permutation的应用

这题用cin 和cout 超时 悲催
#include <iostream>
#include <algorithm>
using namespace std;
int fact[5] = {1,1,2,6,24};

int main()
{
    int a[1025];
    int test;
    scanf("%d",&test);
    int i,j;
    while(test--)
    {
        int n,k;
        scanf("%d%d",&n,&k);
        i=0;
		if(n<5)
			k %= fact[n];
        while(i<n)scanf("%d",&a[i++]);
        for(i=1;i<=k;i++)
        {
            if(!next_permutation(&a[0],&a[n]))
            {
                 for(j=0;j<n;j++)
                 a[j] = j+1;
            }
        }
        for(i=0;i<n;i++)printf("%d ",a[i]);
        printf("\n");
    }
    system("pause");
    return 1;
}
posted @ 2011-06-16 21:44  dapanshe  阅读(266)  评论(0编辑  收藏  举报