답안 #728745

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
728745 2023-04-23T02:41:43 Z Cris_MCG Zamjena (COCI18_zamjena) C++17
0 / 70
9 ms 2448 KB
#include <bits/stdc++.h>
#define int long long

using namespace std;

signed main()
{
  ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);

  //ifstream fin; fin.open("Copia Copia b.txt");

  int n;
  cin >> n;
  pair<string, string> p[n];
  vector<int> pos;
  queue<string> v;
  map<string, vector<string>> mapa;
  map<string, string> val;
  map<int, bool> ya;
  for(int i = 0; i < n; i++)  {
    string s;
    cin >> s;
    if(s[0] - '0' >= 1 && s[0] - '0' <= 9)  {
      p[i].first = s;
      pos.push_back(i);
      ya[i] = 1;
    }
    else
      p[i].first = s;
  }
  for(int i = 0; i < n; i++)  {
    string s;
    cin >> s;
    if(s[0] - '0' >= 1 && s[0] - '0' <= 9)  {
      p[i].second = s;
      if(!ya[i])
        pos.push_back(i);
    }
    else
      p[i].second = s;
  }
  for(int i = 0; i < n; i++)  {
    if(p[i].first[0] > 60 && p[i].second[0] > 60)  {
      mapa[p[i].first].push_back(p[i].second);
      if(p[i].first != p[i].second)
        mapa[p[i].second].push_back(p[i].first);
    }
  }
  bool b = 0;
  for(int i = 0; i < pos.size() && !b; i++)  {
    int x = pos[i];
    if(p[x].first[0] - '0' >= 1 && p[x].first[0] - '0' <= 9 && p[x].second[0] - '0' >= 0 && p[x].second[0] - '0' <= 9)  {
      if(p[x].first != p[x].second)
        b = 1;
      continue;
    }
    else if(p[x].second[0] > 60)  {
      val[p[x].second] = p[x].first;
      v.push(p[x].second);
      continue;
    }
    else if(p[x].first[0] > 60)  {
      val[p[x].first] = p[x].second;
      v.push(p[x].first);
      continue;
    }
  }
  if(b)  {
    cout << "NO" << '\n';
    return 0;
  }
  while(!v.empty() && !b)  {
    string aux = v.front();
    v.pop();
    string va = val[aux];
    for(int i = 0; i < mapa[aux].size(); i++)  {
      if(val[mapa[aux][i]] == "")  {
        v.push(mapa[aux][i]);
        val[mapa[aux][i]] = va;
      }
      else  {
        if(val[mapa[aux][i]] != va)
          b = 1;
      }
    }
  }
  if(!b)
    cout << "YES" << '\n';
  else
    cout << "NO" << '\n';

  return 0;
}

Compilation message

zamjena.cpp: In function 'int main()':
zamjena.cpp:50:20: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   50 |   for(int i = 0; i < pos.size() && !b; i++)  {
      |                  ~~^~~~~~~~~~~~
zamjena.cpp:76:22: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<std::__cxx11::basic_string<char> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   76 |     for(int i = 0; i < mapa[aux].size(); i++)  {
      |                    ~~^~~~~~~~~~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 212 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 212 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 212 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 2 ms 596 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 9 ms 2448 KB Output isn't correct
2 Halted 0 ms 0 KB -