AtCoder Beginner Contest 218 A~D

AtCoder Beginner Contest 218 A~D

					<div> 
														 Koshkaaa															
														 2026-01-20 15:57:33 

				</div>
									<pre><code>void solve() {<br/>
int n = 26;<br/>
for (int i = 0, x; i &lt; n; ++i) {<br/>
    cin &gt;&gt; x;<br/>
    cout &lt;&lt; char(&#39;a&#39; + x - 1);<br/>
}<br/>

}

struct node {int x, y;};
vector&lt;node&gt;v1, v2, v3, v4, v5;
bool cmp(node a, node b) { return a.x == b.x ? a.y &lt; b.y : a.x &lt; b.x; }
bool check(vector&lt;node&gt; a, vector&lt;node&gt;b) {

int n = a.size();<br/>
int lx = a[0].x - b[0].x;<br/>
int ly = a[0].y - b[0].y;<br/>
for (int i = 0; i &lt; n; i++) {<br/>
    if (a[i].x - b[i].x != lx) return false;<br/>
    if (a[i].y - b[i].y != ly) return false;<br/>
}<br/>
return true;<br/>

}
void solve() {

int n; cin &gt;&gt; n;<br/>
for (int i = 1; i &lt;= n; ++i)<br/>
    for (int j = 1; j &lt;= n; ++j) {<br/>
        char c; cin &gt;&gt; c;<br/>
        if (c == &#39;#&#39;) {<br/>
            v1.push_back({i, j});<br/>
            v2.push_back({j, n - i + 1});<br/>
            v3.push_back({n - j + 1, i});<br/>
            v5.push_back({n - i + 1, n - j + 1});<br/>
        }<br/>
    }<br/>
for (int i = 1; i &lt;= n; ++i)<br/>
    for (int j = 1; j &lt;= n; ++j) {<br/>
        char c; cin &gt;&gt; c;<br/>
        if (c == &#39;#&#39;)<br/>
            v4.push_back({i, j});<br/>
    }<br/>
if (v1.size() != v4.size()) {cout &lt;&lt; &#34;No\n&#34;; return ;}<br/>
if (v1.size() == 0 and v2.size() == 0) {cout &lt;&lt; &#34;Yes\n&#34;; return ;}<br/>
sort(v1.begin(), v1.end(), cmp);<br/>
sort(v2.begin(), v2.end(), cmp);<br/>
sort(v3.begin(), v3.end(), cmp);<br/>
sort(v4.begin(), v4.end(), cmp);<br/>
sort(v5.begin(), v5.end(), cmp);<br/>
int f = 0;<br/>
if (check(v1, v4)) f = 1;<br/>
if (check(v2, v4)) f = 1;<br/>
if (check(v3, v4)) f = 1;<br/>
if (check(v5, v4)) f = 1;<br/>
cout &lt;&lt; (f ? &#34;Yes\n&#34; : &#34;No\n&#34;);<br/>

}

struct node {

int x, y;<br/>
bool operator &lt;(const node &amp;nd) const {<br/>
    if (x == nd.x) return y &lt; nd.y;<br/>
    else return x &lt; nd.x;<br/>
}<br/>

};
void solve() {

int n; cin &gt;&gt; n;<br/>
int x[n + 1], y[n + 1];<br/>
map&lt;node, int&gt;mp;<br/>
for (int i = 1; i &lt;= n; i++)<br/>
    cin &gt;&gt; x[i] &gt;&gt; y[i], mp[(node) {x[i], y[i]}] = 1; //记录节点<br/>
ll cnt = 0;<br/>
for (int i = 1; i &lt;= n; ++i)<br/>
    for (int j = i + 1; j &lt;= n; ++j) {<br/>
        if (x[i] == x[j] || y[i] == y[j]) continue;<br/>
        if (mp[(node) {x[i], y[j]}] == 1 and  mp[(node) {x[j], y[i]}] == 1) cnt += 1;<br/>
    }<br/>
cout &lt;&lt; cnt / 2 &lt;&lt; &#34;\n&#34;;<br/>

}

														<div>