結果
| 問題 | 
                            No.2357 Guess the Function
                             | 
                    
| コンテスト | |
| ユーザー | 
                             aoblue2547
                         | 
                    
| 提出日時 | 2023-06-23 21:52:16 | 
| 言語 | C++17  (gcc 13.3.0 + boost 1.87.0)  | 
                    
| 結果 | 
                             
                                WA
                                 
                             
                            
                         | 
                    
| 実行時間 | - | 
| コード長 | 2,431 bytes | 
| コンパイル時間 | 3,848 ms | 
| コンパイル使用メモリ | 253,308 KB | 
| 最終ジャッジ日時 | 2025-02-15 00:55:58 | 
| 
                            ジャッジサーバーID (参考情報)  | 
                        judge1 / judge2 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | AC * 1 | 
| other | AC * 6 WA * 4 | 
ソースコード
//テンプレート
//Visual Studio用
#define _CRT_SECURE_NO_WARNINGS
#include <bits/stdc++.h>
using namespace std;
template<class T> bool chmin(T& a, T b) {return a > b ? a = b, true : false;}
template<class T> bool chmax(T& a, T b) {return a < b ? a = b, true : false;}
template<class T> vector<T> cumulate(vector<T>& a) {
	const int n = (int)a.size();
	vector<T> res(n + 1);
	a.emplace_back(0);
	exclusive_scan(a.begin(), a.end(), res.begin(), 0ll);
	a.pop_back();
	return res;
}
template<class T>istream& operator>>(istream& is, vector<T>& v) { for (auto& e : v)is >> e; return is; }
template<class T>ostream& operator<<(ostream& os, vector<T>& v) { for (auto& e : v)os << e << " "; return os; }
using ll = long long;
using ull = unsigned long long;
using uint = unsigned int;
struct Edge {
	int to;
	ll weight;
	Edge(int t, ll w) :to(t), weight(w) {}
	bool operator==(Edge e) {
		return this->to == e.to and this->weight == e.weight;
	}
	bool operator<(Edge e) {
		if (this->to < e.to) {
			return this->weight <= e.weight;
		}
		else return false;
	}
};
ostream& operator<<(ostream& os, Edge e) { cout << e.to; return os; }
using graph_ = vector<vector<Edge>>;
class Graph {
	graph_ g;
public:
	Graph(int n) :g(n) {}
	graph_::iterator begin() { return g.begin(); }
	graph_::const_iterator begin() const { return g.begin(); }
	graph_::iterator end() { return g.end(); }
	graph_::const_iterator end() const { return g.end(); }
	vector<Edge>& operator [](int v) {
		return g[v];
	}
	const graph_& data() { return g; }
	void add(int u, int v, ll w = 1) {
		g[u].emplace_back(Edge{ v,w });
	}
	void wadd(int u, int v, ll w = 1) {
		add(u, v, w);
		add(v, u, w);
	}
};
//Atcoder Library
/**/
#include <atcoder/all>
using namespace atcoder;
using mint = modint998244353;
//using mint = modint1000000007;
//using mint0 = dynamic_modint<0>;
//using mint = modint;
//mint::set_mod();
istream& operator>>(istream& is, mint& x) { ll r; cin >> r; x = r; return is; }
ostream& operator<<(ostream& os, mint& x) { cout << x.val(); return os; }
/**/
//debug用
#define SHOW(n) cout << #n << " = " << n << endl;
/*
ここまでテンプレート
*/
int main() {
	/**/
	cin.tie(nullptr);
	ios::sync_with_stdio(false);
	/**/
	cout << "? " << 100 << endl;
	int x;
	cin >> x;
	cout << "? " << 100 - x - 1 << endl;
	int y;
	cin >> y;
	int b = y + 1;
	int a = b - (100 - x) % b;
	cout << "! " << a << ' ' << b << endl;
	
	return 0;
}
            
            
            
        
            
aoblue2547