In a far away kingdom young pages help to set the table for the King. As they are terribly mischievous, one needs to keep an eye on the control whether they have set everything correctly. This time the royal chef Gerasim had the impression that the pages have played a prank again: they had poured the juice from one cup to another. Now Gerasim wants to check his hypothesis. The good thing is that chef Gerasim always pour the same number of milliliters of juice to all cups in the royal kitchen. Having thoroughly measured the juice in each cup, Gerasim asked you to write a program that will determine from which cup juice was poured to which one; otherwise, the program should determine that this time the pages set the table diligently.
To simplify your task we shall consider the cups to be bottomless so that the juice never overfills a cup and pours out, however much it can be. Besides, by some strange reason in a far away kingdom one can only pour to a cup or from one cup to another an integer number of milliliters of juice.
The first line contains integer n — the number of cups on the royal table (1 ≤ n ≤ 1000). Next n lines contain volumes of juice in each cup — non-negative integers, not exceeding 104.
If the pages didn't pour the juice, print "Exemplary pages." (without the quotes). If you can determine the volume of juice poured during exactly one juice pouring, print "v ml. from cup #a to cup #b." (without the quotes), where v represents the volume of poured juice, a represents the number of the cup from which the juice was poured (the cups are numbered with consecutive positive integers starting from one in the order in which the cups are described in the input data), b represents the number of the cup into which the juice was poured. Finally, if the given juice's volumes cannot be obtained using no more than one pouring (for example, the pages poured the juice from one cup to another more than once or the royal kitchen maids poured the juice into the cups incorrectly), print "Unrecoverable configuration." (without the quotes).
5 270 250 250 230 250
20 ml. from cup #4 to cup #1.
5 250 250 250 250 250
Exemplary pages.
5 270 250 249 230 250
Unrecoverable configuration.
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<string>
#include<cstring>
#include<algorithm>
#include<queue>
#include<stack>
#include<map>
#include<set>
#include<iomanip>
#include<cmath>
const int MAX=1001;
using namespace std;
typedef struct Cup
{
int v;
int num;
}cup;
cup s[MAX];
bool cmp(cup a,cup b)
{
return a.v<b.v;
}
int main()
{
int n,i,j,aver,count,p;
double sum;
cin>>n;
sum=0;
for(i=1;i<=n;i++)
{
cin>>s[i].v;
s[i].num=i;
sum+=double(s[i].v);
}
aver=int(sum/n);
if(aver==sum/n)
{
count=0;
for(i=1;i<=n;i++)
{
if(s[i].v==aver)
count+=1;
}
if(count==n)
cout<<"Exemplary pages."<<endl;
else
{
sort(s+1,s+n+1,cmp);
p=0;
for(i=1;i<=n/2;i++)
{
if(((s[i].v+s[n-i+1].v)/2==aver)&&(s[i].v!=aver&&s[n-i+1].v!=aver))
{
p+=1;
}
}
if(p==1)
{
for(i=1;i<=n/2;i++)
{
if(((s[i].v+s[n-i+1].v)/2==aver)&&(s[i].v!=aver&&s[n-i+1].v!=aver))
{
cout<<(s[n-i+1].v-s[i].v)/2<<" ml. from cup #"<<s[i].num<<" to cup #"<<s[n-i+1].num<<'.'<<endl;
break;
}
}
}
else
cout<<"Unrecoverable configuration."<<endl;
}
}
else
cout<<"Unrecoverable configuration."<<endl;
}