Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Problem: NEXTPERM
- State: Wrong Answer
- Total score for this submission: 0
- Test Case #0 for 2 points
- Wrong Answer
- Runtime: 0.12
- Test Case #1 for 2 points
- Wrong Answer
- Runtime: 0.124
- Test Case #2 for 2 points
- Wrong Answer
- Runtime: 0.124
- Test Case #3 for 2 points
- Wrong Answer
- Runtime: 0.12
- Test Case #4 for 2 points
- Wrong Answer
- Runtime: 0.116
- Test Case #5 for 2 points
- Wrong Answer
- Runtime: 0.124
- Test Case #6 for 2 points
- Wrong Answer
- Runtime: 0.124
- Test Case #7 for 2 points
- Wrong Answer
- Runtime: 0.14
- Test Case #8 for 2 points
- Wrong Answer
- Runtime: 0.108
- Test Case #9 for 2 points
- Wrong Answer
- Runtime: 0.124
- /**
- * Created by aditya on 16-10-2014.
- */
- import java.io.BufferedInputStream;
- import java.util.ArrayList;
- import java.util.Scanner;
- public class Main {
- public static void main(String args[]) {
- Scanner scan = new Scanner(new BufferedInputStream(System.in));
- int n = scan.nextInt();
- int k = scan.nextInt();
- ArrayList<Integer> list = new ArrayList<Integer>(k);
- ArrayList<Integer> list_out = new ArrayList<Integer>(k);
- for (int i = 0; i < k; i++) {
- list.add(scan.nextInt());
- }
- for (int j = 0; j < k; j++) {
- list_out.add(next_perm(list.get(j), n));
- }
- for (int temp : list_out) {
- System.out.println(temp);
- }
- System.out.flush();
- }
- public static int next_perm(int k, int n) {
- int perm = 0;
- int number = k;
- int num[] = new int[n];
- for (int i = 0; i < n; i++) {
- num[i] = number % 10;
- number /= 10;
- }
- int k_max = 0;
- for (int i = 0; i < n; i++) {
- if (i == (n-1))
- break;
- if (num[i + 1] >= num[i]) {
- ++k_max;
- } else if (num[i + 1] < num[i]) {
- break;
- }
- }
- if(k_max==(n-1))return k;
- int j_max = k_max+1;
- for (int i = k_max; i >= 0; i--) {
- if (num[i] > num[k_max + 1]) {
- --j_max;
- } else {
- break;
- }
- }
- int temp=num[j_max];
- num[j_max]=num[k_max+1];
- num[k_max+1]=temp;
- for(int i=k_max,j=0;i>j;i--,j++){
- int tempo = num[i];
- num[i]=num[j];
- num[j]=tempo;
- }
- for (int i = 0; i < n; i++) {
- perm += num[i] * (int) Math.pow(10, i);
- }
- return perm;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement