Open utterances-bot opened 3 years ago
Bài này sao để AC ạ , em dùng hàm của python cx limt cay nhở 😭😭😭
ai có code C++ không cho mình xin với
Bên máy mình acept hết mà qua đây lại bị runtime :(((
Đây là lời giải của mình đã TLE. Nếu bạn đã cố gắng mà chưa làm được thì có thể tham khảo lời giải của mình.
```cpp
#include
Ai dùng code Python AC cho mình xem với, mình code Python test ok mà qua đây TLE cả =((
Đây là lời giải của mình đã AC. Nếu bạn đã cố gắng mà chưa làm được thì có thể tham khảo lời giải của mình.
https://oj.luyencode.net/status/4e78ecdb23b07f4a83fb53dc0ebe6ef9?problem=PAINT
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; namespace LearnCS { class Task { public int taskType; public string x, y; public Task(int taskType, string x, string y = "") { this.taskType = taskType; this.x = x; this.y = y; } } class Room { public string color; public Room(string color = null) { this.color = color; }
public override string ToString()
{
return this.color;
}
}
internal class SonPhong
{
int n;
Task[] tasks;
List<Room> rooms = new List<Room>();
private void TaskOne(string colorX)
{
colorX = colorX.Trim();
if (rooms.Count == 0)
{
rooms.Add(new Room(colorX));
} else
{
int len = rooms.Count;
bool flag = false;
for (int i = 0; i < len; i++)
{
if (rooms[i].color == null)
{
rooms[i].color = colorX;
flag = true;
break;
}
}
if (flag == false)
{
rooms.Add(new Room(colorX));
}
}
}
private void TaskTwo(string colorX, string colorY)
{
colorX = colorX.Trim();
colorY = colorY.Trim();
int len = rooms.Count;
for (int i = 0; i < len; i++)
{
if (rooms[i].color == colorX && rooms[i].color != null)
{
rooms[i].color = colorY;
}
}
}
private void HandLeTasks()
{
int len = tasks.Length;
for (int i = 0; i < len; i++)
{
if (tasks[i].taskType == 1)
{
TaskOne(tasks[i].x);
} else
{
TaskTwo(tasks[i].x, tasks[i].y);
}
}
}
// like Main Method
public void Run()
{
string[] data = GetData();
LoadTasks(data);
HandLeTasks();
ShowArray(rooms);
}
private void LoadTasks(string[] data)
{
string[] dataAfterClean;
for (int i = 0; i < n; i++)
{
dataAfterClean = data[i].Split(' ');
if (dataAfterClean[0] == "1")
{
tasks[i] = new Task(
Convert.ToInt32(dataAfterClean[0]),
dataAfterClean[1]
);
}
else
{
tasks[i] = new Task(
Convert.ToInt32(dataAfterClean[0]),
dataAfterClean[1],
dataAfterClean[2]
);
}
}
}
private string[] GetData()
{
string[] rawData = File.ReadAllText("E:\\IT\\LearnCS\\LearnCS\\data.txt").Split('\n');
n = rawData.Length;
tasks = new Task[n];
return rawData;
}
private void ShowArray(string[] array)
{
foreach (var item in array)
{
Console.Write($"item: {item}\n");
}
}
private void ShowArray(Task[] array)
{
int len = array.Length;
for (int i = 0; i < len; i++)
{
Console.WriteLine($"stt {i + 1}\n" +
$"Type: {array[i].taskType}\nx: {array[i].x}\n" +
$"y: {array[i].y}");
Console.WriteLine("\n**********************");
}
}
private void ShowArray(List<Room> array)
{
int len = array.Count;
for (int i = 0; i < len; i++)
{
Console.WriteLine($"I: {i+1} | {array[i]}");
}
}
}
}
code C# ạ, mn chạy thì tạo một object sonPhong ở Main rồi chạy method Run của sonPhong nhé. nhớ sửa lại link đến tệp (mình bỏ dòng đầu tiên vì không cần thiết nên mn nghi theo như này vào tệp nhé: 1 c 1 b 1 a 1 c 1 d 2 a b 1 c 1 a 1 b 2 b d c ơm mn nhiều ae có góp ý để cải thiện tốc độ của bài này thì ib mình nhé
bài này cài ctdl
Chi tiết bài tập - Luyện Code Online
https://luyencode.net/problem/PAINT