يتم تزويدك بمقتطف التعليمات البرمجية الذي يعد جزءًا من برنامج أكبر يتحكم في نظام تكييف الهواء (AC). يعرض مقتطف الكود عبارة شرطية تحدد ما إذا كان سيتم إيقاف تشغيل مكيف الهواء أم لا بناءً على شروط معينة.

مهمتك هي تنفيذ دالة، `should_turn_off_ac`، والتي تأخذ معلمتين:
1. `الآن` (عدد صحيح): الوقت الحالي بالثواني المنقضي منذ الطابع الزمني المرجعي.
2. `alarm_start` (عدد صحيح): الوقت بالثواني المنقضي منذ الطابع الزمني المرجعي عند بدء التنبيه.

الطابع الزمني المرجعي هو نقطة زمنية ثابتة يتم قياس الوقت "الآن" و"بدء التنبيه".

يجب أن تقوم الدالة بإرجاع قيمة منطقية تشير إلى ما إذا كان يجب إيقاف تشغيل نظام التيار المتردد. قواعد إيقاف تشغيل مكيف الهواء هي كما يلي:

- إذا كان الوقت المنقضي بين "بدء التنبيه" و"الآن" أكبر من قيمة الحد `MIN_TIME_TURN_OFF_AC` (ثابت)، فيجب إيقاف تشغيل مكيف الهواء، بغض النظر عن أي شروط أخرى.

- إذا لم يكن الوقت المنقضي أكبر من الحد الأدنى، ولكن "حالة_الإنذار_الحرج" هي "صحيح"، مما يعني أن نظام التيار المتردد موجود حاليًا في حالة إنذار حرجة، فيجب إيقاف تشغيل التيار المتردد.

- إذا لم يتم استيفاء أي من الشروط المذكورة أعلاه، فيجب أن يظل مكيف الهواء قيد التشغيل.

قم بتنفيذ الوظيفة `should_turn_off_ac(now: int, Alarm_start: int) -> bool` لحل المشكلة. افترض أن `MIN_TIME_TURN_OFF_AC` و`critical_alarm_state` هما متغيران يمكن الوصول إليهما داخل البرنامج ولكنهما ليسا معلمتين للوظيفة `should_turn_off_ac`.

يمكنك افتراض أن قيم الإدخال لـ `now` و`alarm_start` هي دائمًا أعداد صحيحة غير سالبة.

مثال:
```
MIN_TIME_TURN_OFF_AC = 1800
Critical_alarm_state = خطأ

التأكيد يجب أن_يتحول_off_ac(3600, 900) == صحيح
تأكيد يجب_turn_off_ac(900, 900) == خطأ
التأكيد يجب أن_يتحول_off_ac(1800, 900) == خطأ
تأكيد يجب_turn_off_ac(1800, 1800) == خطأ
التأكيد يجب أن_يتحول_off_ac(2700, 900) == خطأ
```
{"source": "argilla/DistiCoder-dpo-binarized", "kind": "synthetic", "evolved_from": null}