Advertisement
Guest User

Untitled

a guest
Nov 16th, 2018
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.24 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. #define viktor vector
  5. #define forn(i, s, e) for(ll i=s;i<e;++i)
  6. #define x first
  7. #define y second
  8. #define pii pair <int, int>
  9. #define pll pair <ll, ll>
  10.  
  11. typedef long long ll;
  12.  
  13. template <typename T>
  14. ostream&operator << (ostream&out, viktor <T>&v){
  15. forn(i,0,v.size()) cout << v[i] << " ";
  16. }
  17.  
  18. template <typename T>
  19. istream&operator >> (istream&in, viktor <T>&v){
  20. forn(i,0,v.size()) cin >> v[i];
  21. }
  22.  
  23. const ll INF=1000000000+1;
  24.  
  25. int main(){
  26. int a;
  27. ll mi=INF, ma=-INF;
  28. cin >> a;
  29. viktor <ll> v(a);
  30. ll t;
  31. string s;
  32. for (int i=0;i<a;++i){
  33. t=0;
  34. cin >> s;
  35. if (s.size()==1 && (s[0]<='0' || s[0]>='9')){
  36. v[i]=INF;
  37. continue;
  38. }
  39. else {
  40. for (int j=s.size()-1;j>-1;--j){
  41. t=t*10+int(s[j]-'0');
  42. }
  43. }
  44. v[i]=t;
  45. }
  46. for (int i=0;i<a-1;++i){
  47. if (v[i]==INF && v[i+1]==INF){
  48. cout << "none";
  49. return 0;
  50. }
  51. if (v[i]!=INF && v[i+1]!=INF){
  52. if ((i+1)%2==1){
  53. if (v[i]>=v[i+1]){
  54. cout << "none";
  55. return 0;
  56. }
  57. }
  58. else {
  59. if (v[i]<=v[i+1]){
  60. cout << "none";
  61. return 0;
  62. }
  63. }
  64.  
  65. }
  66. }
  67. for (int i=1;i<a-1;++i){
  68. if (v[i]==INF){
  69. if ((i+1)%2==0){
  70. if (v[i-1]!=INF && v[i-1]>ma) ma=v[i-1];
  71. if (v[i+1]!=INF && v[i+1]>ma) ma=v[i+1];
  72. }
  73. else {
  74. if (v[i-1]!=INF && v[i-1]<mi) mi=v[i-1];
  75. if (v[i+1]!=INF && v[i+1]<mi) mi=v[i+1];
  76. }
  77. }
  78. }
  79. if (v[0]==INF){
  80. if (v[1]!=INF && v[1]<mi) mi=v[1];
  81. }
  82. if (v[a-1]==INF){
  83. if (a%2==0){
  84. if (v[a-2]!=INF && v[a-2]>ma) ma=v[a-2];
  85. }
  86. else{
  87. if (v[a-2]!=INF && v[a-2]<mi) mi=v[a-2];
  88. }
  89. }
  90. if (mi-ma==2){
  91. cout << mi-1;
  92. }
  93. else if(mi-ma<2){
  94. cout << "none";
  95. }
  96. else{
  97. cout << "ambiguous";
  98. }
  99. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement