Advertisement
Pabon_SEC

Social Constraints

May 1st, 2016
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.20 KB | None | 0 0
  1. #include<iostream>
  2. #include<algorithm>
  3.  
  4. using namespace std;
  5.  
  6. int a[22],b[22],c[22],index[22];
  7.  
  8. int p[] = {0,1,2,3,4,5,6,7};
  9.  
  10. int main()
  11. {
  12.     int n,m,i,tot,diff;
  13.  
  14.     while(scanf("%d%d",&n,&m)==2)
  15.     {
  16.         if(n==0 && m==0)
  17.         {
  18.             break;
  19.         }
  20.  
  21.         tot = 0;
  22.  
  23.         for(i=1;i<=m;i++)
  24.         {
  25.             scanf("%d%d%d",&a[i],&b[i],&c[i]);
  26.         }
  27.  
  28.         do
  29.         {
  30.             for(i=0;i<n;i++)
  31.             {
  32.                 index[p[i]] = i;
  33.             }
  34.  
  35.             int ok = 1;
  36.  
  37.             for(i=1;i<=m;i++)
  38.             {
  39.                 diff = abs(index[a[i]]-index[b[i]]);
  40.  
  41.                 if(c[i]>0)
  42.                 {
  43.                     if(diff>c[i])
  44.                     {
  45.                         ok = 0;
  46.                         break;
  47.                     }
  48.                 }
  49.                 else
  50.                 {
  51.                     if(diff<-c[i])
  52.                     {
  53.                         ok = 0;
  54.                         break;
  55.                     }
  56.                 }
  57.             }
  58.  
  59.             tot+=ok;
  60.         }
  61.  
  62.         while(next_permutation(p,p+n));
  63.  
  64.         printf("%d\n",tot);
  65.     }
  66.  
  67.     return 0;
  68. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement