Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows.Forms;
- namespace cows_and_oxes
- {
- public partial class Form1 : Form
- {
- public Form1()
- {
- InitializeComponent();
- }
- int k = 4;
- int i;
- const int n = 9001;
- string[] list = new string[n];
- int[] linkfrom = new int[n];
- int[] linkto = new int[n];
- int first = 0;
- int p = n;
- int m = 0;
- public void comp(string s1, string s2, ref int a1, ref int a2)
- {
- for (int i = 0; i < s1.Length; i++)
- for (int j = 0; j < s2.Length; j++)
- {
- if (s1[i] == s2[j])
- {
- if (i == j)
- a1++;
- else
- a2++;
- }
- }
- if (s1 == s2)
- {
- a1 = k;
- a2 = 0;
- }
- }
- private void Form1_Load(object sender, EventArgs e)
- {
- int r;
- for (int i = 0; i < n; i++)
- list[i] = "";
- for (i = 1000; i < 10000; i++)
- {
- string s = i.ToString();
- //while (s.Length < k)
- //{
- // s = '0' + s;
- //}
- r = i - 1000;
- list[r] = s;
- linkto[r] = r + 1;
- linkfrom[r] = r - 1;
- }
- linkto[n - 1] = -1;
- //for (i = 0; i < n; i++)
- // richTextBox1.AppendText(list[i] + '\n');
- richTextBox1.AppendText(list[0] + '\n');
- }
- private void button1_Click(object sender, EventArgs e)
- {
- string input = textBox1.Text;
- //richTextBox2.Text = string.Empty;
- string[] el = input.Split(' ', '\n');
- int cows = int.Parse(el[0]);
- int oxes = int.Parse(el[1]);
- int a1, a2;
- int t;
- if (m != -1 && p > 1)
- {
- i = first;
- while (i != -1)
- {
- t = linkto[i];
- a1 = 0;
- a2 = 0;
- comp(list[m], list[i], ref a1, ref a2);
- if (a1 != cows || a2 != oxes)
- {
- if (i == first)
- {
- int b;
- if (linkto[i] != -1)
- {
- b = linkto[linkto[i]];
- first = linkto[i];
- linkfrom[linkto[i]] = linkfrom[i];
- linkto[i] = b;
- }
- // else
- //linkfrom[linkto[i]] = linkfrom[i];
- }
- else
- if (linkto[i] == -1)
- {
- linkto[linkfrom[i]] = linkto[i];
- }
- else
- {
- linkto[linkfrom[i]] = linkto[i];
- linkfrom[linkto[i]] = linkfrom[i];
- }
- p--;
- }
- i = t;
- }
- m = linkto[m];
- if (m != -1)
- richTextBox1.AppendText(list[m] + '\n');
- textBox1.Text = string.Empty;
- }
- else
- {
- richTextBox1.AppendText("Ваше число: " + list[first]);
- }
- }
- private void textBox1_TextChanged(object sender, EventArgs e)
- {
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement