Advertisement
Guest User

Untitled

a guest
Jul 14th, 2017
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.20 KB | None | 0 0
  1. #include <fstream>
  2. #include <vector>
  3. #include <algorithm>
  4. #include <time.h>
  5.  
  6. #define MAXN 100000
  7.  
  8. using namespace std;
  9.  
  10. ifstream in("input.txt");
  11.  
  12. bool frakkiobello_permutation(int N, int K, int A[], int B[])
  13. {
  14.     sort(A, A+N);
  15.     sort(B, B+N);
  16.     for(int i=0; i<N; i++)
  17.         if(A[i] != B[i])
  18.             return false;
  19.     return true;
  20. }
  21.  
  22. bool my_is_permutation(int N, int K, int A[], int B[])
  23. {
  24.     vector<int> freq(K,0);
  25.     for (int i=0; i<N; i++)
  26.         freq[A[i]]++;
  27.     for (int i=0; i<N; i++)
  28.         freq[B[i]]--;
  29.     for (int i=0; i<N; i++)
  30.         if (freq[A[i]])
  31.             return false;
  32.     return true;
  33. }
  34.  
  35. int main()
  36. {
  37.     int N, K;
  38.     int A[MAXN];
  39.     int B[MAXN];
  40.    
  41.     in >> N >> K;
  42.     for (int i=0; i<N; i++)
  43.         in >> A[i];
  44.     for (int i=0; i<N; i++)
  45.         in >> B[i];
  46.    
  47.     clock_t t;
  48.     t = clock();
  49.     cout << "Soluzione in O(N^2) fa: " << is_permutation(A,A+N,B);
  50.     t = clock() - t;
  51.     cout << " in " << t << " millisecondi.\n";
  52.     t = clock();
  53.     cout << "Soluzione in O(NlogN) fa: " << frakkiobello_permutation(N,K,A,B);
  54.     t = clock() - t;
  55.     cout << " in " << t << " millisecondi.\n";
  56.     t = clock();
  57.     cout << "Soluzione in O(N) fa: " << my_is_permutation(N,K,A,B);
  58.     t = clock() - t;
  59.     cout << " in " << t << " millisecondi.\n";
  60.     return 0;
  61. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement