Проблема ABSYS на spoj
Я застрял на одной проблеме SPOJ.com - ABSYS проблема [^]
Я выполнил свою программу на всех тестовых примерах ,я получаю правильный ответ.
Но все же я получаю как "неправильный ответ" на spoj
Что я уже пробовал:
Разбивая поток на строки ,хранящие их в векторах, таким образом,мы можем сказать, что наш вектор будет иметь 5 строк (numstring,+, numstring,=, numstring), а затем мы будем проверять каждую строку всякий раз, когда мы находим m в строке, мы узнаем, что строка в этой позиции является переменной, которую нужно вычислить с помощью других цифр строки
И мы также уверены в том, что строка с цифрами может быть только при 0,2,4 индексах в векторах, другие два индекса будут иметь + и =
Сценарии тестирования:
Ввод:
3
23 + 47 = Мачула
3247 + 5machula2 = 3749
мачула13 + 75425 = 77038
Выход:
23 + 47 = 70
3247 + 502 = 3749
1613 + 75425 = 77038
Что я уже пробовал:
#include<iostream> #include<sstream> #include<vector> #include<string> using namespace std; int main() { int t; (cin >> t).get(); while (t--) { string str; getline(cin, str); stringstream split(str); string each; vector <string> tokens; while (getline(split, each, ' ')) { ///scan each part of stream; tokens.push_back(each); } int ind = -1; for (int i = 0; i < tokens.size(); i++) { string temp; temp = tokens[i]; for (int j = 0; j < temp.length(); j++) { if (temp[j] == 'm') { ind = i; break; } } if (ind != -1) break; } int i1, i2; string str1; if (ind == 0) { i1 = stoi(tokens[2]); i2 = stoi(tokens[4]); int result = i2 - i1; cout << result << " + " << i1 << " = " << i2 << "\n"; //break; } else if (ind == 2) { i1 = stoi(tokens[0]); i2 = stoi(tokens[4]); int result; result = i2 - i1; cout << i1 << " + " << result << " = " << i2 << "\n"; //break; } else if (ind == 4) { i1 = stoi(tokens[0]); i2 = stoi(tokens[2]); int result = i1 + i2; cout << i1 << " + " << i2 << " = " << result << "\n"; //break; } tokens.clear(); str.erase(); } }
Richard MacCutchan
Вы должны задать этот вопрос по адресу spoj.com.