POJ 2983 Is the Information Reliable?(差分约束)

来源:互联网 发布:如何删掉淘宝评价图片 编辑:程序博客网 时间:2024/05/16 19:41

思路:从题目已知一些A和B的距离已知,那么就可以得d[A]-d[B]<=X && d[A]-d[B]>=X,并且有一些边只知道大小关系的就是d[A]-d[B]>=1,然后建图最短路就可以了


#include<iostream>#include<cstdio>#include<queue>#include<cstring>using namespace std;const int maxn = 1005;#define inf 1e9vector<pair<int,int> >e[maxn];int d[maxn],inq[maxn],cnt[maxn],n;int spfa(){    memset(cnt,0,sizeof(cnt));memset(inq,0,sizeof(inq));for(int i = 1;i<=n;i++)d[i]=inf;    queue<int>q;q.push(0);d[0]=0;inq[0]=1;while(!q.empty()){int u = q.front();        q.pop();inq[u]=0;for(int i =0;i<e[u].size();i++){int v = e[u][i].first;if(d[v]>d[u]+e[u][i].second){d[v]=d[u]+e[u][i].second;if(!inq[v]){inq[v]=1;q.push(v);if(++cnt[v]>n)return false;}}}}return true;}int main(){int m;    while(scanf("%d%d",&n,&m)!=EOF){for(int i = 0;i<=n;i++)e[i].clear();        for(int i =1;i<=m;i++){char s[10];int u,v;scanf("%s",s);if(s[0]=='P'){                int w;scanf("%d%d%d",&u,&v,&w);                e[v].push_back(make_pair(u,w));e[u].push_back(make_pair(v,-w));}else if(s[0]=='V'){scanf("%d%d",&u,&v);e[u].push_back(make_pair(v,-1));}}for(int i = 1;i<=n;i++)e[0].push_back(make_pair(i,0));if(spfa())printf("Reliable\n");elseprintf("Unreliable\n");}}


Description

The galaxy war between the Empire Draco and the Commonwealth of Zibu broke out 3 years ago. Draco established a line of defense called Grot. Grot is a straight line with N defense stations. Because of the cooperation of the stations, Zibu’s Marine Glory cannot march any further but stay outside the line.

A mystery Information Group X benefits form selling information to both sides of the war. Today you the administrator of Zibu’s Intelligence Department got a piece of information about Grot’s defense stations’ arrangement from Information Group X. Your task is to determine whether the information is reliable.

The information consists of M tips. Each tip is either precise or vague.

Precise tip is in the form of P A B X, means defense station A is X light-years north of defense station B.

Vague tip is in the form of V A B, means defense station A is in the north of defense station B, at least 1 light-year, but the precise distance is unknown.

Input

There are several test cases in the input. Each test case starts with two integers N (0 < N ≤ 1000) and M (1 ≤ M ≤ 100000).The next M line each describe a tip, either in precise form or vague form.

Output

Output one line for each test case in the input. Output “Reliable” if It is possible to arrange N defense stations satisfying all the M tips, otherwise output “Unreliable”.

Sample Input

3 4P 1 2 1P 2 3 1V 1 3P 1 3 15 5V 1 2V 2 3V 3 4V 4 5V 3 5

Sample Output

UnreliableReliable


0 0